Excel生成与解析:POI、EasyPoi、EasyExcel、hutool 您所在的位置:网站首页 easypoi内存溢出 Excel生成与解析:POI、EasyPoi、EasyExcel、hutool

Excel生成与解析:POI、EasyPoi、EasyExcel、hutool

2023-08-05 17:34| 来源: 网络整理| 查看: 265

概述

业务开发过程中,经常会有导出报表的需求,一般情况下以Excel文本形式。Java里有很多工具支持这一功能。

POI

Apache POI,提供对Microsoft Office格式文档的读和写功能。不过实际工作中,大多数场景只是利用POI来操作Excel,甚至只用xls一种格式:

org.apache.poi poi org.apache.poi poi-ooxml

扩展——其他 artifactId:

Maven artifactIdPrerequisitespoipoi-scratchpadpoipoi-ooxmlpoi, poi-ooxml-schemaspoi-ooxml-schemasxmlbeanspoi-examplespoi, poi-scratchpad, poi-ooxmlooxml-schemasxmlbeansmaven artifactId的功能与定位,方便只引入必要的GAV:ComponentApplication type––POIFSOLE2 FilesystemHPSFOLE2 Property SetsHSSFExcel XLSHSLFPowerPoint PPTHWPFWord DOCHDGFVisio VSDHPBFPublisher PUBHSMFOutlook MSGOpenXML4JOOXMLXSSFExcel XLSXXSLFPowerPoint PPTXXWPFWord DOCXCommon SSExcel XLS and XLSX

当只要使用xls格式时、只要导入poi即可; 当还要使用xlsx格式、还要导入poi-ooxml; 当需要操作word、ppt、viso、outlook等时需要用到poi-scratchpad。

简介

API:

HSSF - 提供读写Microsoft Excel格式档案的功能。XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。HWPF - 提供读写Microsoft Word格式档案的功能。HSLF - 提供读写Microsoft PowerPoint格式档案的功能。HDGF - 提供读写Microsoft Visio格式档案的功能。

HSSF 用来操作Office 2007版本前excel.xls文件,XSSF用来操作Office 2007版本后的excel.xlsx文件。HSSF在org.apache.poi.hssf.usermodel包中,实现Workbook 接口,常用组件: HSSFWorkbook excel的文档对象 HSSFSheet excel的表单 HSSFRow excel的行 HSSFCell excel的格子单元 HSSFFont excel字体 HSSFDataFormat 日期格式 HSSFHeader sheet头 HSSFFooter sheet尾(只有打印的时候才能看到效果) HSSFCellStyle cell样式 HSSFDateUtil 日期 HSSFPrintSetup 打印 HSSFErrorConstants 错误信息表

XSSF 在org.apache.xssf.usemodel包,实现Workbook接口,常用组件: XSSFWorkbook excel的文档对象 XSSFSheet excel的表单 XSSFRow excel的行 XSSFCell excel的格子单元 XSSFFont excel字体 XSSFDataFormat 日期格式 和HSSF类似;

入门 导出Excel

一般来说,导出Excel可以分为如下七个步骤,其他设置单元格数据格式、单元格背景、单元格宽度等略去:

// 1.创建Excel文档 HSSFWorkbook workbook = new HSSFWorkbook(); // 2.设置文档的基本信息(可选) // 获取文档信息,并配置 DocumentSummaryInformation dsi = workbook.getDocumentSummaryInformation(); // 文档类别 dsi.setCategory("员工信息"); // 设置文档管理员 dsi.setManager("win10"); // 设置组织机构 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

主要涉及三个步骤:

文件上传Excel解析数据插入

文件上传可以采用ElementUI中的Upload控件;正在上传时,文件上传控件不可用,上传成功或者失败之后才可用,上传过程中,上传按钮会有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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有