【无标题】

该博客介绍了如何使用Apache POI库处理Excel文件的上传和读取,主要涉及文件类型的检查、文件大小限制以及数据的读取。针对.xlsx和.xls文件类型,通过XSSFWorkbook和HSSFWorkbook分别进行数据解析,并从指定列获取数据。此过程适用于批量导入或数据处理场景。
摘要由CSDN通过智能技术生成

POI excel读取

1.引包

org.apache.poi
poi
3.9


org.apache.poi
poi-ooxml
3.9

2.核心代码
//controller 接收
@RequestParam(required = false) MultipartFile jcrjstz_uploadfile

String name = jcrjstz_uploadfile.getOriginalFilename();
String type = FilenameUtils.getExtension(name);
AjaxResult res = new AjaxResult();
if (jcrjstz_uploadfile.isEmpty()) {
res.setTotalcount(101);
res.setMsg(“导入文件为空!”);
return res;
}
if (!“xlsx”.equalsIgnoreCase(type) && !“xls”.equalsIgnoreCase(type)) {
res.setTotalcount(101);
res.setMsg(“请按下载模板格式上传文件!”);
return res;
}
bean.setFiletype(type);
long size= jcrjstz_uploadfile.getSize();
if (size>210241024) {
res.setTotalcount(101);
res.setMsg(“文件大小超过2MB,请按要求上传文件!”);
return res;
}
bean.setFiles(jcrjstz_uploadfile.getBytes());

===================================
取值赋值
if (“xlsx”.equalsIgnoreCase(filetype)){
XSSFWorkbook workbook = new XSSFWorkbook(new ByteArrayInputStream(bytearray));
logger.info("--------------0002—0003–001");
XSSFSheet sheet = (XSSFSheet) workbook.getSheetAt(0); //取表
//取行
//XSSFRow titleRow = sheet.getRow(0);//标题
int row_len=sheet.getPhysicalNumberOfRows();
logger.info("--------------0002—0003–002:"+row_len);
for (int rowIndex = 1; rowIndex <row_len ; rowIndex++) {
XSSFRow row = sheet.getRow(rowIndex);
if (row == null) {
continue;
}
//Map<String, String> map = new LinkedHashMap<String, String>();
SqlParameterExt spx1 = new SqlParameterExt(false);
grzh=getString(row.getCell(1),filetype);
spx1.add(new StringValue(grzh)); // 含有excel个人账号

	lst.add(spx1);
	/*
	//循环取每个单元格(cell)的数据
	int cell_len=xssfRow.getPhysicalNumberOfCells();
	for (int cellIndex = 0; cellIndex < cell_len; cellIndex++) {
		//XSSFCell titleCell = titleRow.getCell(cellIndex);
		XSSFCell xssfCell = xssfRow.getCell(cellIndex);
		//map.put(cellIndex+"",getString(xssfCell,XSSFCell.class));
	}
	//list.add(map);
	 */
}
logger.info("--------------0002---0003--003");
//处理数据

}else if(“xls”.equalsIgnoreCase(filetype)){
logger.info("--------------0002—0003–002");
HSSFWorkbook workbook = new HSSFWorkbook(new ByteArrayInputStream(bytearray));
HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(0); //
//取行
//XSSFRow titleRow = sheet.getRow(0);//标题
int row_len=sheet.getPhysicalNumberOfRows();
logger.info("--------------0002—0003–002:"+row_len);
for (int rowIndex = 1; rowIndex <row_len ; rowIndex++) {
HSSFRow row = sheet.getRow(rowIndex);
if (row == null) {
continue;
}
SqlParameterExt spx1 = new SqlParameterExt(false);
grzh=getString(row.getCell(1),filetype);
spx1.add(new StringValue(grzh)); // 含有excel个人账号
lst.add(spx1);

}
logger.info("--------------0002---0003--003");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值