1 背景

小白今天闲着没事,在公司摸鱼,以为今天有事无聊的一天,突然上头说小子,今天实现一下批量导入Excel数据吧,当时我的内心是拒绝的,然后默默打开idea。

2 介绍

2.1 框架

java本身并不支持读取excel,所有读取excel需要借助一些框架。目前有几种方式,

1. Apache POI

2. Java Excel API

3. easyexcel

这里主要讲解的是 Apache POI,Apache POI支持03版以及07年版 区别是后缀不一样,03版对应的是xls 07版对应的是xlsx xlsx 这里主要讲解的是07版的

2.2 excel字段介绍

1.sheet表示的是

excel底部的工作表.

对应的是POI的的XSSFSheet

2.row表示的是行

对应的是POI的的XSSFRow

3.cell表示的是每一行的单元格.

对应的是POI的的Cell

3 源码

3.0 片段说明

1.上传文件使用springboot的MultipartFile 对应

MultipartFile file

2.创建对象

XSSFWorkbook xssfWorkbook = new XSSFWorkbook(inputStream);

3.获取sheet(默认第一个)

XSSFSheet sheet = xssfWorkbook.getSheetAt(0);

3.1 控制层源码

@RequestMapping("/import")
public void importExcel(@RequestParam("file") MultipartFile file) throws Exception{InputStream inputStream = file.getInputStream();//07年的 不兼容之前XSSFWorkbook xssfWorkbook = new XSSFWorkbook(inputStream);XSSFSheet sheet = xssfWorkbook.getSheetAt(0);//获取行数int lastRowNum = sheet.getLastRowNum();for (int i = 1; i <= lastRowNum; i++) {XSSFRow row = sheet.getRow(i);QuChannel quChannel = new QuChannel();if (row.getCell(0) != null){row.getCell(0).setCellType(XSSFCell.CELL_TYPE_STRING);quChannel.setChannel(row.getCell(0).getStringCellValue());}if (row.getCell(1) != null){row.getCell(1).setCellType(XSSFCell.CELL_TYPE_STRING);quChannel.setChannelName(row.getCell(1).getStringCellValue());}if (row.getCell(2) != null){row.getCell(2).setCellType(XSSFCell.CELL_TYPE_STRING);quChannel.setRemarks(row.getCell(2).getStringCellValue());}if (row.getCell(3) != null){quChannel.setChannelSource((int) row.getCell(3).getNumericCellValue());}if (row.getCell(4) != null){quChannel.setActivityType((int) row.getCell(4).getNumericCellValue());}if (row.getCell(5) != null){quChannel.setDeliveryTime(row.getCell(5).getDateCellValue());}if (row.getCell(6) != null){row.getCell(6).setCellType(XSSFCell.CELL_TYPE_STRING);quChannel.setOriginalLink(row.getCell(6).getStringCellValue());}if (row.getCell(7) != null){row.getCell(7).setCellType(XSSFCell.CELL_TYPE_STRING);quChannel.setSaLink(row.getCell(7).getStringCellValue());}if (row.getCell(8) != null){quChannel.setDeliveryMode((int) row.getCell(8).getNumericCellValue());}if (row.getCell(9) != null){quChannel.setCreateGroup((int) row.getCell(9).getNumericCellValue());}if (row.getCell(10) != null){row.getCell(10).setCellType(XSSFCell.CELL_TYPE_STRING);quChannel.setRemark(row.getCell(10).getStringCellValue());}quChannelMapper.insert(quChannel);}
}

3.2 review

1.避免将sql写在for循环里面,改进的话可以创建一个列表list,将对象add进去,然后在循环外面进行批量插入

2.想要去重的话可以使用set的不能重复添加特性

3.注意excel的字段与类属性的对应关系,如果excel字段是string,但是累属性是整形的话,可以使用枚举类

暂时想到这么多 欢迎指教评论

easyexcel导入固定sheet_springboot批量导入excel数据相关推荐

  1. python处理大量excel数据-python如何批量处理excel数据?

    python如何批量处理excel数据? python批量处理excel数据的方法: excel的内容需要有规律,python才能按顺序读取出来. 比如按行按列读取. 一.安装xlrd模块 到pyth ...

  2. python怎么批量处理数据_python如何批量处理excel数据?_后端开发

    php赋值运算符有哪些_后端开发 php赋值运算符有:1.[=]赋值运算符:2.[+=]加运算符:3.[-=]减运算符:4.[*=]乘运算符:5.[/=]除运算符:6.[.=]连接字符运算符:7.[% ...

  3. 利用Pajek软件批量处理excel数据,批量生成网络关系图

    利用Pajek软件批量处理excel数据,批量生成网络关系图 Pajek软件大家想必都不陌生,但是我很陌生,因为我用它不是进行网络分析,而是用它来画关系图(类似网络图).但是Pajek软件手工操作时一 ...

  4. Python 批量处理 Excel 数据后,导入 SQL Server

    作者 | 老表 来源 | 简说Python 1.前言 2.开始动手动脑 2.1 拆解+明确需求 2.2 安装第三方包 2.3 读取excel数据 2.4 特殊数据数据处理 2.5 其他需求 2.6 完 ...

  5. Python批量处理Excel数据后,导入SQL Server

    1.前言 2.开始动手动脑 2.1 拆解+明确需求 2.2 安装第三方包 2.3 读取excel数据 2.4 特殊数据数据处理 2.5 其他需求 2.6 完整调用代码 3.后言后语 1.前言 今天我们 ...

  6. python将excel数据导入ppt_使用python将excel数据导入数据库

    因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...

  7. python批量处理excel数据_Python批量处理Excel,真香(超实用!)

    本文介绍了利用Python批量处理Excel文件的一种方法,超实用,超简单.轻松可实现,节省时间不只一点点.文章不长,功能超强. 上菜. 某一天,老板丢个我一个任务.需要将400多张表按照一定条件进行 ...

  8. Java - 批量录入Excel数据优化 (一)

    1.前言 相信批量导入功能在许多应用场景都会使用到.本人在做一次公司需求时,因为需要校验Excel数据唯一性,所以代码变成了这样 for (BlackListInfoExcelDTO excelDTO ...

  9. oracle物料 批量导入,3.9批量导入一揽子采购协议

    3.9.1   业务方案描述 一揽子采购协议可以手工维护,也可以批量导入,批量导入一揽子采购协议的功能,以提高价格维护的效率. 采购一揽子协议是区分OU的,不同OU的采购协议需要单独维护. 批量导入一 ...

  10. bartender外部表不是预期格式_批量合并Excel数据时“外部表不是预期格式”或“文件包含损坏数据”的两种情况...

    很多朋友在用Power Query合并(汇总)Excel数据时,碰到过"DataFormat.Error:外部表不是预期格式"或"DataFormat.Error:文件包 ...

最新文章

  1. python营销骗局_python案例:金融营销活动中欺诈用户行为分析
  2. matlab 降低维度,求助。。。matlab索引超出维度要怎么修改。。。谢谢
  3. 新闻频道管理的炫酷实现
  4. 所谓的Dumb Question
  5. css笔记——css 实现自定义按钮
  6. eureka注册中心HA集群搭建
  7. VirtualBox 安装 Linux 时遇到的问题及解决办法
  8. 通过 Azure 媒体管理门户开始使用直播流媒体
  9. 基于气象站点气象数据的空间插值
  10. 【系统分析师】考试内容大纲内容
  11. stm32 薄膜键盘原理_stm32F4----薄膜4*4矩阵键盘读取(七)
  12. 厘米换算英尺英寸java
  13. unity抗锯齿关闭
  14. java调用录像_java调用摄像头拍照录像
  15. A调用B方法,@Transactional事务失效情况
  16. 使用股指期货与ETF基金进行期现套利
  17. spring注入sessionfactory
  18. 苹果邮箱登录入口_电子邮箱的申请及使用说明
  19. omf多路径 oracle_ORACLE OMF
  20. 如何成为牛逼的程序员

热门文章

  1. 7.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- 日志收集与分析
  2. 13.高性能MySQL --- 云端的MySQL
  3. 61. 创建快速响应的Web应用
  4. mysql安装框架_MySQL安装详解图文版(V5.5 For Windows)
  5. css3中的box-shadow的用法与text-shadow的用法
  6. js(JavaScript):事件,元素(增删改查)
  7. js 如何判断数组元素是否存在重复项
  8. 【Henu ACM Round#18 F】Arthur and Walls
  9. Python学习之OS模块初识
  10. POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)