赞
踩
先贴一下poi相关jar包的链接
https://poi.apache.org/download.html#POI-5.0.0
官网地址
- <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi</artifactId>
- <version>5.0.0</version>
- </dependency>
maven标签
- public static void WriteXlsx(String path, String sheetname, List<Map<String, Object>> list)
- throws FileNotFoundException, IOException {
- try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
- // 定义工作表
- SXSSFSheet sheet = wb.createSheet(sheetname);
- // 定义行
- SXSSFRow row;
- // 定义列
- SXSSFCell cell;
-
- //创建标题行
- SXSSFRow titlerow = sheet.createRow(0);
-
- //读取Map的Key作为标题名称
- int t = 0;
- for (Entry<String, Object> entry : list.get(0).entrySet()) {
- cell = titlerow.createCell(t);
- cell.setCellValue(entry.getKey().toString());
- t=t+1;
- }
-
- //创建表格内容
- int i = 1;
- for (Map<String, Object> map : list) {
- // 创建行
- int j = 0;
- row = sheet.createRow(i);
- for (Entry<String, Object> entry : map.entrySet()) {
- // 创建列
- cell = row.createCell(j);
- if (entry.getValue() != null) {
- cell.setCellValue(entry.getValue().toString());
- } else {
- cell.setCellValue("");
- }
- j = j + 1;
- }
- i = i + 1;
- }
-
-
- // Save
- try (FileOutputStream fileOut = new FileOutputStream(path)) {
- LogUtil.info(path);
- wb.write(fileOut);
- }
- }
- }
代码片段,入参是要生成的文件路径,工作表名称和List<Map<String, Object>>形式的数据,这类数据往往适用于数据库的查询结果。执行结果会生成一个单sheet的没有样式的Excel工作簿。因为方法内资源都释放了,如果要生成多个sheet的工作簿,还需要修改,不能直接多次调用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。