SpringBoot+poi 实现批量导入导出

一、引入依赖

		<!-- poi 函数库实现对office文件进行读 -->
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>4.1.2</version>
		</dependency>
		<!-- poi-ooxml -->
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>4.1.2</version>
		</dependency>
		<!-- poi-ooxml-schemas -->
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml-schemas</artifactId>
			<version>4.1.2</version>
		</dependency>

二、输出对应接口,在实现类中实现:

  1. 批量导入
	private final static String XLS = "xls";
	private final static String XLSX = "xlsx";
	@SuppressWarnings({
    "resource", "unused" })
	@Override
	public Integer importExcel(MultipartFile staffInfo) throws Exception {
   
		//获得文件名
		Workbook workbook = null;
		String fileName = staffInfo.getOriginalFilename();
		if(fileName.endsWith(XLS)) {
   
			//2003
			workbook = new HSSFWorkbook(staffInfo.getInputStream());
			log.info("2003-xls");
		} else if(fileName.endsWith(XLSX)) {
   
			//2007
			workbook = new XSSFWorkbook(staffInfo.getInputStream());
			log.info("2007-xlsx");
		} else {
   
			throw new Exception("文件不是Excel文件");
		}

		Sheet sheet = workbook.getSheet("Sheet1");
		int rows = sheet.getLastRowNum(); //总行数
		if(rows == 0) {
   
			throw new Exception("请填写数据");
		}
		//错误数据
		List<Map<String,Object>> errorData = new ArrayList<>();
		for(int i = 1; i<= rows+1; i++) {
   
			Map<String,Object> errorMap = new HashMap<>();
			//读取左上端单元格
			Row row = sheet.getRow(i);
			//行不为空
			if(row != null) {
   
				//读取cell
				Staff staff = new Staff();
				//姓名
				String name = String.valueOf(row.getCell
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值