我是单个Java工程,网上许多教程是适用于spring框架的。

首先导入poi的包,下载地址如下http://poi.apache.org/download.html

(注:若后期出现缺少org/apache/xmlbeans/XmlObject,下载地址为:http://xmlbeans.apache.org  )

导入包后(导入看前面的教程里有提到过),在util下新建文件插入下面的程序就可以啦!

import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;/*** @author fya* @date 2021/1/5*/
public class ExcelUtils {private static ExcelUtils instance = new ExcelUtils();private ExcelUtils(){}public static ExcelUtils getInstance(){return instance;}/*** 将 List<Map<String,Object>> 类型的数据导出为 Excel* 默认 Excel 文件的输出路径为 项目根目录下* 文件名为 filename + 时间戳 + .xlsx** @param mapList 数据源(通常为数据库查询数据)* @param filename   文件名前缀, 实际文件名后会加上日期* @param title   表格首行标题* @return  文件输出路径*/public String  createExcel(List<Map<String, Object>> mapList,String filename, String title) {//获取数据源的 key, 用于获取列数及设置标题Map<String, Object> map = mapList.get(0);Set<String> stringSet = map.keySet();ArrayList<String> headList = new ArrayList<>(stringSet);//定义一个新的工作簿XSSFWorkbook wb = new XSSFWorkbook();//创建一个Sheet页XSSFSheet sheet = wb.createSheet(title);//设置行高sheet.setDefaultRowHeight((short) (2 * 256));//为有数据的每列设置列宽for (int i = 0; i < headList.size(); i++) {sheet.setColumnWidth(i, 8000);}//设置单元格字体样式XSSFFont font = wb.createFont();font.setFontName("等线");font.setFontHeightInPoints((short) 16);//在sheet里创建第一行,并设置单元格内容为 title (标题)XSSFRow titleRow = sheet.createRow(0);XSSFCell titleCell = titleRow.createCell(0);titleCell.setCellValue(title);//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, headList.size() - 1));// 创建单元格文字居中样式并设置标题单元格居中XSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setAlignment(HorizontalAlignment.CENTER);titleCell.setCellStyle(cellStyle);//获得表格第二行XSSFRow row = sheet.createRow(1);//根据数据源信息给第二行每一列设置标题for (int i = 0; i < headList.size(); i++) {XSSFCell cell = row.createCell(i);cell.setCellValue(headList.get(i));}XSSFRow rows;XSSFCell cells;//循环拿到的数据给所有行每一列设置对应的值for (int i = 0; i < mapList.size(); i++) {//在这个sheet页里创建一行rows = sheet.createRow(i + 2);//给该行数据赋值for (int j = 0; j < headList.size(); j++) {String value = mapList.get(i).get(headList.get(j)).toString();cells = rows.createCell(j);cells.setCellValue(value);}}Date date = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");// 使用项目根目录, 文件名加上时间戳String path = System.getProperty("user.dir") + "\\" + filename + dateFormat.format(date) + ".xlsx";System.out.println("Excel文件输出路径: "+path);try {File file = new File(path);FileOutputStream fileOutputStream = new FileOutputStream(file);wb.write(fileOutputStream);wb.close();fileOutputStream.close();} catch (IOException e) {e.printStackTrace();}return path;}}

在自己的方法里进行调用使用:

ExcelUtils.getInstance().createExcel(mapArrayList,"文件名","测试数据");

Java使用poi将list<Map>导出为表格相关推荐

  1. Java使用POI生成折线图导出到word文档(折线图)

    本篇文章主要介绍,如何使用Apache POI组件生成折线图导出到word文档中,具体步骤看下文. 一.实现效果 Java使用POI技术生成折线图导出到word文档中,最终生成的折线图如下所示: 二. ...

  2. 使用 poi 通过浏览器方式导出Excel表格(导出字段与表格字段不一样且取值逻辑改变)

    使用 poi 通过浏览器方式导出Excel表格(导出字段与表格字段不一样且取值逻辑改变) 思路:拿到表格页面查询的结果作为查询条件,表格页面的url和点击导出按钮的url是一样的,按钮的url多一个参 ...

  3. java使用poi.xssf 写入内容到excel表格中 和 读取 表格里面的数据

    一.java使用poi.xssf 写入内容到excel表格中 public class TestExcel {//创建一个excel工作簿public static String outputFile ...

  4. java使用poi的excel数据导出及线上预览

    工作中经常会遇到需要从数据库中获取数据,整理后导出数据到excel中提供其他人员下载或者查看,整体功能并不复杂,今天提供一个基于poi工具+永中云预览的excel通用导出在线查看的方法 maven依赖 ...

  5. POI和EasyExcel导入导出Excel表格

    这里写自定义目录标题 EasyExcel操作Excel表格 一.导入依赖: 二.编写实体类 三.编写测试类 POI操作Excel表格 基本功能: 一.导入依赖 二.测试类 2.1 使用HSSFWork ...

  6. Java使用POI生成柱状图导出到word文档(柱状图)

    本篇文章主要介绍,如何使用Apache POI组件生成柱状图导出到word文档中,具体步骤看下文. 一.实现效果 Java使用POI技术生成柱状图导出到word文档中,最终生成的柱状图如下所示: 二. ...

  7. java poi导出Excel表格超大数据量解决方案

    Java实现导出excel表格功能,大部分都会使用apache poi,apache poi API 地址 POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小效果 ...

  8. java利用poi导出excel功能-附带图片导出

    java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...

  9. 关于Java使用POI对Excel2003和2007的导入和导出

    Excel2003和2007的区别,除了不仅在外观上,还有相关的功能上也都得到很大改善,因为机制的问题(或许后缀问题把),在文件解析上,也与之前有很大区别 ,对于我这代码君来说,还是直接上代码,比较直 ...

  10. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

最新文章

  1. 如何通过中序和层序序列建立二叉树
  2. Windows Store App JavaScript 开发:获取文件和文件夹列表
  3. boost::filesystem模块和boost::timer混合的测试程序
  4. 演示:两台交换机成环后的STP计算原则
  5. 和bmc_热固性BMC的注塑成型介绍
  6. 解决java.lang.NoClassDefFoundError: org/apache/log4j/Level
  7. Java 书籍 Top 10
  8. 【DIY】自动鱼缸控制系统——【三】
  9. Android 拼音搜索中文,包含多音字
  10. 数据可视化 d3操作汇总(一):d3以及直方图绘制简介
  11. 浅谈C++11中的move和forward
  12. 如何将笔记本作为另一台电脑的副屏显示
  13. 微软工程院 硕士_微软工程院招聘NLP算法研究员实习生|NLP算法工程师实习生_北京实习招聘...
  14. “深入理解计算机系统”小组学习的Task01-学习日志
  15. 计算机音乐说散就散,说散就散(精彩音乐汇)
  16. 会议记录怎样做得又快又好?一分钟学会录音转文字
  17. 新书推荐 |《机器学习:算法视角(原书第2版)》
  18. 11.9 leetcode打卡
  19. Android 适配Q版本Beta2
  20. manjaro安装后需要做的几件事

热门文章

  1. C++---暂时的休憩
  2. 石川:出色不如走运 (III)?
  3. cv/nlp哪些小方向好发论文?
  4. 如何在 Mac 上录制屏幕?mac录屏教程分享
  5. 方面级情感分析论文泛读02:Syntax-Aware Aspect-Level Sentiment Classification with Proximity-Weighted Convolution
  6. 从淘宝服务器IP地址服务获取IP地址信息的方法
  7. 618大促,我把知识星球的价格调错了……
  8. Zbrush 4R7 P3中给类模型怎么快速隐藏
  9. Java Web 实现下载文件
  10. 7.3 数字化的资产管理