SpringBoot中如何使用POI导入导出Excel
SpringBoot中如何使用POI导入导出Excel,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
网站的建设创新互联公司专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为葡萄架等企业提供专业服务。
1.创建Excel文档
HSSFWorkbook workbook = new HSSFWorkbook();
2.设置文档的基本信息,这一步是可选的
//获取文档信息,并配置 DocumentSummaryInformation dsi = workbook.getDocumentSummaryInformation(); //文档类别 dsi.setCategory("员工信息"); //设置文档管理员 dsi.setManager("江南一点雨"); //设置组织机构 dsi.setCompany("XXX集团"); //获取摘要信息并配置 SummaryInformation si = workbook.getSummaryInformation(); //设置文档主题 si.setSubject("员工信息表"); //设置文档标题 si.setTitle("员工信息"); //设置文档作者 si.setAuthor("XXX集团"); //设置文档备注 si.setComments("备注信息暂无");
这些信息将显示在详细信息窗格中:
3.创建一个Excel表单,参数为sheet的名字
HSSFSheet sheet = workbook.createSheet("XXX集团员工信息表");
4.创建一行
HSSFRow headerRow = sheet.createRow(0);
0表示第一行。
5.在第一行中创建第一个单元格,并设置数据
HSSFCell cell0 = headerRow.createCell(0); cell0.setCellValue("编号");
6.将Excel写到ByteArrayOutputStream中
baos = new ByteArrayOutputStream(); workbook.write(baos);
7.创建ResponseEntity并返回
return new ResponseEntity(baos.toByteArray(), headers, HttpStatus.CREATED);
核心步骤就这七个步骤,当然还有其他设置单元格数据格式、单元格背景、单元格宽度等,大家可以在源码中研究,这里就不赘述了。
导入Excel数据
数据导入主要涉及三个步骤 1.文件上传;2.Excel解析;3.数据插入。第三步就比较简单了,我们这里重点来看看前两个步骤。
文件上传
文件上传采用了ElementUI中的Upload控件,如下:
{{fileUploadBtnText}}
正在上传时,文件上传控件不可用,上传成功或者失败之后才可用,上传过程中,上传按钮会有loading显示。
然后在SpringMVC中接收上传文件即可:
@RequestMapping(value = "/importEmp", method = RequestMethod.POST) public RespBean importEmp(MultipartFile file) { //... }
Excel解析
将上传到的MultipartFile转为输入流,然后交给POI去解析即可。可以分为如下四个步骤:
1.创建HSSFWorkbook对象
HSSFWorkbook workbook = new HSSFWorkbook(new POIFSFileSystem(file.getInputStream()));
2.获取一共有多少sheet,然后遍历
int numberOfSheets = workbook.getNumberOfSheets(); for (int i = 0; i < numberOfSheets; i++) { HSSFSheet sheet = workbook.getSheetAt(i); //... }
3.获取sheet中一共有多少行,遍历行(注意第一行是标题)
int physicalNumberOfRows = sheet.getPhysicalNumberOfRows(); Employee employee; for (int j = 0; j < physicalNumberOfRows; j++) { if (j == 0) { continue;//标题行 } //... }
4.获取每一行有多少单元格,遍历单元格
int physicalNumberOfCells = row.getPhysicalNumberOfCells(); employee = new Employee(); for (int k = 0; k < physicalNumberOfCells; k++) { HSSFCell cell = row.getCell(k); //... }
关于SpringBoot中如何使用POI导入导出Excel问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
文章名称:SpringBoot中如何使用POI导入导出Excel
新闻来源:http://scyanting.com/article/giijhg.html