excel表格数据导入java封装类

excel表格数据导入java封装类

需要导入的pom文件依赖
<dependency>
	    <groupId>org.apache.xmlbeans</groupId>
	    <artifactId>xmlbeans</artifactId>
	    <version>2.6.0</version>
	</dependency>
	 <!-- poi -->
	<dependency>
		<groupId>org.apache.poi</groupId>
		<artifactId>poi</artifactId>
		<version>3.9</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
	<dependency>
	    <groupId>org.apache.poi</groupId>
	    <artifactId>poi-ooxml</artifactId>
	    <version>3.9</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
	<dependency>
	    <groupId>org.apache.poi</groupId>
	    <artifactId>poi-ooxml-schemas</artifactId>
	    <version>3.9</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
	<dependency>
	    <groupId>org.apache.commons</groupId>
	    <artifactId>commons-collections4</artifactId>
	    <version>4.1</version>
	</dependency>
后台代码
/**
	传入两个值:
		1,需要导入的execl表格
		2,需要封装数据的封装类
*/
@Operation(name="添加到账导入信息")
@RequestMapping("upload")
@ResponseBody
public Map<String, Object> addPayment(ReceiveThePayment receiveThePayment,@RequestParam MultipartFile file) throws Exception{
    Map<String, Object> map = new HashMap<String,Object>(16);	
	XSSFWorkbook workbook =null;
	
	//把MultipartFile转化为File
	CommonsMultipartFile cmf= (CommonsMultipartFile)file;
	DiskFileItem dfi=(DiskFileItem) cmf.getFileItem();
	File fo=dfi.getStoreLocation();
 
	//创建Excel,读取文件内容
	workbook = new XSSFWorkbook(FileUtils.openInputStream(fo));
 
	//获取第一个工作表
	XSSFSheet sheet = workbook.getSheetAt(0);
	
	//获取sheet中第一行行号
	int firstRowNum = sheet.getFirstRowNum();
	//获取sheet中最后一行行号
	int lastRowNum = sheet.getLastRowNum();
	
	try {
		//循环插入数据(根据表格来插入数据)
		for(int i=firstRowNum+1;i<=lastRowNum;i++){
			XSSFRow row = sheet.getRow(i);
			
            XSSFCell date = row.getCell(0);//日期
			if(date!=null){
				date.setCellType(Cell.CELL_TYPE_STRING);
				String stringCellValue = date.getStringCellValue();
				Date parse = new SimpleDateFormat("yyyyMMdd").parse(stringCellValue);
				Instant instant = parse.toInstant();
		        ZoneId zoneId = ZoneId.systemDefault();
		        LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
				receiveThePayment.setDate((localDateTime));   //将数据封装到pojo类中
			}
            
			XSSFCell consignor = row.getCell(1);//到款方
			if(consignor!=null){
				consignor.setCellType(Cell.CELL_TYPE_STRING);
				receiveThePayment.setConsignor((consignor.getStringCellValue()));    //将数据封装到pojo类中
			}
			
			XSSFCell arrivalAmount = row.getCell(2);//到款金额
			if(arrivalAmount!=null){
				arrivalAmount.setCellType(Cell.CELL_TYPE_STRING);
				String stringCellValue = arrivalAmount.getStringCellValue();
				Double result = Double.parseDouble("".equals(stringCellValue)?"0.00":stringCellValue);
				receiveThePayment.setArrivalAmount(result);   //将数据封装到pojo类中
			}

			//插入数据if(receiveThePaymentService.insertReceiveThePaymentSelective(receiveThePayment)) {
				map.put("status",true);
				map.put("msg", "操作成功");
			}else {
				map.put("status",false);
				map.put("msg", "操作失败");
				return map;
			}
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
    return map;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值