java实现导入excel文件

自己也整理出一个简单的excel导入例子,亲试可成功!建议可用于数据量较少的地方。

从文件上传,到java处理,都较为详细

1.html上传文件

<form id="uploadForm" method="post" action="importexcel.ajax" enctype="multipart/form-data">
	<input id="files" name="files" type="file" style="width:200px;"/>
</form>
<button onclick="importexcel();" type="button"><font style="color:#930093;">导入excel表</font></button>

2.js实现

function importexcel(){
			if(files == ""){
				alert("请选择要上传的文件");
			}else{
				//扩展名的文件名
                var files = document.getElementById("files").value;
                //扩展名的文件名
                var bbb=files.lastIndexOf(".");
                var ccc=files.substring(bbb+1);
				if(ccc=='xlsx'){
                    $("#uploadForm").submit();
                    setTimeout("fun()",1500);
				}else{
                    alert("请选择.xlsx文件");
				}
			}
        }

3.Java实现,最后用一个list接收即可,自行做业务处理

@RequestMapping(value = "/importexcel.ajax", method = RequestMethod.POST)
	@ResponseBody
	public viod importexcel(HttpServletRequest request, HttpServletResponse response){
       MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        MultipartFile multipartFile = multipartRequest.getFile("files");
        InputStream is = null;
        try {
            is = multipartFile.getInputStream();
            if(is!=null) {
                Workbook wb = WorkbookFactory.create(is);
                List<Dto> list = new ArrayList<Dto>();//自己定义接收数据
                int rowCount = 0;
                boolean temp = true;
                Sheet st = wb.getSheetAt(0);
                int rowNum = st.getLastRowNum(); //获取Excel最后一行索引,从零开始,所以获取到的是表中最后一行行数减一
                int colNum = st.getRow(1).getLastCellNum();//获取Excel列数
                for (int r = 2; r <= rowNum-2; r++) {//读取每一行,第一行为标题,从第二行开始
                    Row row = st.getRow(r);
                    HongbaoCalcItemDto h = new HongbaoCalcItemDto();
                    for (int l = 0; l < colNum; l++) {//读取每一行的每一列
                        Cell cell = row.getCell(l);
                        switch (l) {//0  1  2  3 自定义列数接受自己想要的数据
                            case 0:
                                h.setMemberAccount(cell.getStringCellValue());
                                break;
                            case 2:
                                h.setCalcDate(DateUtil.string2Date(cell.getStringCellValue(), DateUtil.FULL_FORMAT));
                                break;
                            case 3:
                                Double cashBonus = cell.getNumericCellValue();
                                h.setCashBonus(new BigDecimal(String.valueOf(cashBonus)));

                                break;
                            case 4:
                                Double points = cell.getNumericCellValue();
                                h.setPoints(points.intValue());
                                break;
                        }
                    }
                    list.add(h);
                }
                if(list.size()>0){
                   //得到数据,自行处理业务            
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        }
    }

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java实现导入Excel的步骤如下: 1. 引入POI库 在Java程序使用Apache POI库来读取Excel文件。可以在pom.xml文件添加以下依赖关系: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.0</version> </dependency> ``` 2. 读取Excel文件 使用POI的Workbook类打开Excel文件并获取工作表。使用Sheet类和Row类遍历工作表以获取单元格的值。 ```java FileInputStream file = new FileInputStream(new File("文件路径.xls")); // 获取工作簿 Workbook workbook = new HSSFWorkbook(file); // 获取工作表 Sheet sheet = workbook.getSheetAt(0); // 遍历行 for (Row row : sheet) { // 遍历单元格 for (Cell cell : row) { // 获取单元格的值 String value = cell.getStringCellValue(); System.out.println(value); } } ``` 3. 处理Excel数据 读取Excel数据后,可以将其存储在Java对象进行处理。可以使用JavaBean来表示Excel的行。 ```java public class ExcelRow { private String name; private int age; // 其他属性 // getter和setter方法 } ``` 使用JavaBean存储Excel数据: ```java // 遍历行 for (Row row : sheet) { ExcelRow excelRow = new ExcelRow(); // 遍历单元格 Cell cell = row.getCell(0); excelRow.setName(cell.getStringCellValue()); cell = row.getCell(1); excelRow.setAge((int) cell.getNumericCellValue()); // 其他属性 // 将JavaBean添加到列表 rows.add(excelRow); } ``` 使用JavaBean处理Excel数据: ```java // 遍历JavaBean列表 for (ExcelRow excelRow : rows) { // 处理JavaBean数据 } ``` 4. 关闭工作簿 在完成Excel导入操作后,需要关闭工作簿和文件流。 ```java workbook.close(); file.close(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值