【java工具类】POI导出excel
POI的maven依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
EasyExcel.java的代码:
public static void POIExcel(List<Map<String,Object>> AllDataList, String excelPath) throws IOException{
OutputStream out = new FileOutputStream(excelPath);
String sheetName = "";
List<List<String>> titles = new ArrayList<List<String>>();
List<List<String>> sheetData = new ArrayList<List<String>>();
int size = AllDataList.size();
Map<String,Object> map = new HashMap<>();
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
//超链接样式
XSSFCellStyle hlink_style = xssfWorkbook.createCellStyle();
XSSFFont hlink_font = xssfWorkbook.createFont();
hlink_font.setUnderline(HSSFFont.U_SINGLE);
hlink_font.setColor(HSSFColor.BLUE.index);
hlink_style.setFont(hlink_font);
//循环sheet
for(int i=0 ; i<size ; i++ ){
map = AllDataList.get(i);
sheetName = StringUtils.nvlString(map.get("sheetName"));
titles = (List<List<String>>) map.get("tabHeader");
sheetData = (List<List<String>>) map.get("sheetData");
XSSFSheet sheet = xssfWorkbook.createSheet(sheetName);
//标题行
XSSFRow titlerRow = sheet.createRow(0);
//循环标题
int t=0;
for(List<String> ls : titles){
titlerRow.createCell(t).setCellValue(ls.get(0));
t++;
}
//循环行
int row = 1;
for(List<String> ls : sheetData){
XSSFRow dataRow = sheet.createRow(row);
//循环列
for(int col=0;col<ls.size();col++){
dataRow.createCell(col).setCellValue(ls.get(col));
if(col==0){
File tempFile =new File(ls.get(col));
String fileName = tempFile.getName();
XSSFCell cell = dataRow.getCell(0);
cell.setCellFormula("HYPERLINK(\"./"+fileName+"\",\""+fileName+"\")");
cell.setCellStyle(hlink_style);
}
}
row++;
}
}
xssfWorkbook.write(out);
xssfWorkbook.close();
}
调用:
//excel生成路径
String path = "D:\\exportTest\\" + System.currentTimeMillis() + ".xlsx";
File xlsFile = new File(path);
//文件夹不存在就创建
if (!xlsFile.getParentFile().exists() && !xlsFile.getParentFile().isDirectory())
{
xlsFile.getParentFile().mkdir();
}
//生成excel
EasyExcel.POIExcel(AllDataList,path);
其中,参数AllDataList的传入格式为List<Map<String,Object>>:

格式较复杂,List中每条数据就是一个sheet页内容,主要是sheet页名称(String)、sheet页表头(List<List<String>>)、sheet页数据(List<List<String>>)
记录一下,以后用到的话可根据需要的格式酌情修改。
【java工具类】POI导出excel的更多相关文章
- java工具类POI导出word
1.新建一个word,里面填写内容,如: 2.导出wordjava类 /** * POI导出word测试 * @throws Exception */ @RequestMapping(value=&q ...
- java中使用poi导出excel表格数据并且可以手动修改导出路径
在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下
- java 通过Apache poi导出excel代码demo实例
package com.zuidaima.excel.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutput ...
- java中使用 POI导出excel表格的简单实现
大概流程分7步: 1.创建工作簿 --> 2.创建sheet表 --> 3.创建row行(建议使用循环) --> 4.用row行逐一创建单元格(建议使用循环) --> 5.单元 ...
- Java Web利用POI导出Excel简单例子
采用Spring mvc架构: Controller层代码如下 @Controller public class StudentExportController{ @Autowired private ...
- java使用poi导出excel
继上一篇导出pdf,这篇导出excel. 1.导入依赖 <dependency> <groupId>org.apache.poi</groupId> <art ...
- 使用POI导出EXCEL工具类并解决导出数据量大的问题
POI导出工具类 工作中常常会遇到一些图表需要导出的功能,在这里自己写了一个工具类方便以后使用(使用POI实现). 项目依赖 <dependency> <groupId>org ...
- Java POI 导出EXCEL经典实现 Java导出Excel
转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...
- 重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...
- 重构:以Java POI 导出EXCEL为例2
前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...
随机推荐
- ubuntu分区建议总结
本文为转载别人的内容,结合了其他内容,进行分区的总结.其中主要是分区表格,对于ubuntu安装时,进行分区非常有用. 无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为 ...
- Java 并发编程:volatile的使用及其原理(二)
一.volatile的作用 在<Java并发编程:核心理论>一文中,我们已经提到过可见性.有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果 ...
- mysql标准规范
一.基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读: (1)通用,无乱码风险,汉字3字节,英文1字节 (2)utf8mb4是utf8的超集,有存储 ...
- 小记---------Elasticsear搭建
Elasticsear搭建 创建用户: useradd elasticsearch passwd elasticsearch 1.解压 tar -zxvf elasticsearch-5.5.2. ...
- 實現QQ第三方登錄
<?php // 写几个函数,分别用于获取code,token,openid,用户信息 // 跳转到QQ授权登录页面 function code(){ $response_type='code' ...
- 异常:Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
说明项目没有加载jar包 异常:Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplic ...
- 2-Elasticsearch原理
参考知乎大佬:https://zhuanlan.zhihu.com/p/62892586 一.倒排索引 倒排索引也叫反向索引,举个例子,理解一下.叫你背一首<静夜思>,立马可以背出,但是叫 ...
- vue.js(2)--v-cloak v-text v-html
v-cloak v-text v-html的使用 (1)实例 <!DOCTYPE html> <html lang="en"> <head> ...
- 【转】rsa公钥和私钥的生成
转:https://www.cnblogs.com/zengsf/p/10136886.html 在liunx环境中 openssl 然后生成私钥: genrsa -out app_private_k ...
- CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)
Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...