前言
- 将表格信息导出为Excel表格(导出数)
- 将Excel表格信息录入到数据库(导入数据)
操作Excel目前比较流行的就是 Apache POI 和阿里巴巴的 EasyExcel
Apache POI
Apache POI 官网:https://poi.apache.org/
- HSSF:Excel97-2003版本,扩展名为.xls。一个sheet最大行数65536,最大列数256。
- XSSF:Excel2007版本开始,扩展名为.xlsx。一个sheet最大行数1048576,最大列数16384。
- SXSSF:是在XSSF基础上,POI3.8版本开始提供的支持低内存占用的操作方式,扩展名为.xlsx。
Excel版本兼容性是向下兼容。
03版本和07版的Excel表的生成
<!--xls(03版本)-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<!--xlsx(07版本)-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
代码
@Override
@CrossOrigin
public void testEasyExcel(Map<String, Object> map, HttpServletResponse response) throws IOException {
// var sheetName = "工作表名"
// var headList = ["表头1", "表头2"]
// var filedList = ["字段名1", "字段名2"]
// var dataList = [{字段名1: "2914"}, {字段名2: "2935"}, {字段名3: "2937"}]
String sheetName = map.get("sheetName").toString();
List<String> headList = (List)map.get("headList");
List<String> filedList = (List)map.get("filedList");
List<Map> dataList = (List)map.get("dataList");
// 创建一个03版本的工作簿
Workbook workbook = new HSSFWorkbook();
// 创建一个07版本的工作簿
// Workbook workbook = new XSSFWorkbook();
//
// Workbook workbook = new SXSSFWorkbook();
// 创建一个工作表,指定表名
Sheet sheet = workbook.createSheet(sheetName);
// 创建一个行
Row row = sheet.createRow(0);
// 设置行高
row.setHeight((short)450);
// 设置样式
HSSFCellStyle cellStyle = (HSSFCellStyle)workbook.createCellStyle();
// XSSFCellStyle cellStyle = (XSSFCellStyle) workbook.createCellStyle();
// 设置背景颜色
cellStyle