通用导出功能:

  1.支持Excel xlsx、xls

  2.支持CSV文件导出

  3.数据库查询分页导出、内存导出

4.支持大批量数据导出

使用步骤如下

导入jar

<dependency>
<groupId>com.github.catdou</groupId>
<artifactId>common-export</artifactId>
<version>1.3</version>
</dependency>

导出方式一:List 数据导出

1.创建每一列对应的po字段映射关系

public ExportParam buildUserExportParam() {
Map<String, String> fieldColumnMap = new HashMap<>();
fieldColumnMap.put("A", "userName");
fieldColumnMap.put("C", "seq");
fieldColumnMap.put("B", "passWord");
// build setter method
List<Method> getterMethod = ExportCommon.buildParamGetter(User.class, fieldColumnMap);
return new ExportParam()
.setHeader("username,password,seq")
.setGetterMethod(getterMethod);
}

2.导出数据到文件

csv 文件

public void testExportCsvPath() {
String exportDir = "file" + File.separator + UUID.randomUUID().toString();
File dirFile = new File(exportDir);
dirFile.mkdirs();
String filePath = exportDir + File.separator + "test.csv";
ExportParam exportParam = buildUserExportParam();
CsvExport csvExport = new CsvExport(filePath, exportParam);
List<User> userList = createDataList(100);
csvExport.exportList(userList); }

excel 文件

public void testManySheet() {
String exportDir = "file" + File.separator + UUID.randomUUID().toString();
File dirFile = new File(exportDir);
dirFile.mkdirs();
String filePath = exportDir + File.separator + "test-many.xlsx";
ExportParam exportParam1 = buildUserExportParam();
ExportParam exportParam2 = buildUserExportParam();
Map<Integer, ExportParam> exportParamMap = new HashMap<>(16);
exportParamMap.put(0, exportParam1);
exportParamMap.put(1, exportParam2);
ExcelMultiSheetExport excelMultiSheetExport = new ExcelMultiSheetExport(filePath, null,
false, exportParamMap);
List<User> userList = createDataList(Constants.EXCEL_MAX_ROW_XLSX * 3);
excelMultiSheetExport.exportListByParamIndex(userList, 0);
excelMultiSheetExport.exportListByParamIndex(userList, 1, true);
}

导出方式二:数据获取方法导出

数据量比较大的情况,这时候需要分页查询导出,需要设置查询方法,符合条件数据的总条数

public void testExcel2007() {
ExportParam exportParam = buildUserExportParam();
String exportDir = "file" + File.separator + UUID.randomUUID().toString();
File dirFile = new File(exportDir);
dirFile.mkdirs();
String filePath = exportDir + File.separator + "test.xlsx";
List<User> userList = createDataList(Constants.EXCEL_MAX_ROW_XLSX * 2);
BaseExport baseExport = new ExcelExport(filePath, null, false, exportParam);
baseExport.exportList(userList);
} public void testManySheet() {
String exportDir = "file" + File.separator + UUID.randomUUID().toString();
File dirFile = new File(exportDir);
dirFile.mkdirs();
String filePath = exportDir + File.separator + "test-many.xlsx";
ExportParam exportParam1 = buildUserExportParam();
ExportParam exportParam2 = buildUserExportParam();
Map<Integer, ExportParam> exportParamMap = new HashMap<>(16);
exportParamMap.put(0, exportParam1);
exportParamMap.put(1, exportParam2);
ExcelMultiSheetExport excelMultiSheetExport = new ExcelMultiSheetExport(filePath, null,
false, exportParamMap);
List<User> userList = createDataList(Constants.EXCEL_MAX_ROW_XLSX * 3);
excelMultiSheetExport.exportListByParamIndex(userList, 0);
excelMultiSheetExport.exportListByParamIndex(userList, 1, true);
}

项目地址

https://github.com/CatDou/common-export

如果大家有好的想法,fork代码到你的仓库,然后pull request.

Java 导出Excel xlsx、xls, CSV文件的更多相关文章

  1. Java导出Excel和CSV(简单Demo)

    Java导出Excel和CSV的简单实现,分别使用POI和JavaCSV. JavaBean public class ReportInfo { int id; String date; int nu ...

  2. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  3. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  4. Java 解析Excel(xls、xlsx两种格式)

    Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...

  5. [转载]Java导出Excel

    一.需求介绍 当前B/S模式已成为应用开发的主流,而在开发企业办公系统的过程中,常常有客户这样子要求:把系统数据库中的数据导出到Excel,用户查看报表时直接用Excel打开.或者是:用户已经习惯用E ...

  6. java导出excel表格

    java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...

  7. java导出excel报表

    1.java导出excel报表: package cn.jcenterhome.util; import java.io.OutputStream;import java.util.List;impo ...

  8. java导出excel工具类

    java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...

  9. xls/csv文件转换成dbf文件

    转至:https://blog.csdn.net/linhai1028/article/details/80211252 编写的一个小脚本,主要是利用python中的pandas,xlrd,dbfpy ...

随机推荐

  1. 如何设置mysql远程访问

    如何设置mysql远程访问 Mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问 在MySQL Server端: 执行mysql 命令进入mysql 命令模式, mysql> ...

  2. PHP Curl进行Post时指定 multipart/form-data 或 application/x-www-form-urlencoded 的方法

    PHP Curl进行Post时指定 multipart/form-data 或 application/x-www-form-urlencoded 的方法 先看一段典型的CURL POST的代码: $ ...

  3. OpenCV-Python 图像阈值 | 十五

    目标 在本教程中,您将学习简单阈值,自适应阈值和Otsu阈值. 你将学习函数cv.threshold和cv.adaptiveThreshold. 简单阈值 在这里,问题直截了当.对于每个像素,应用相同 ...

  4. 用css3实现摩天轮旋转的动画效果

    用css3实现摩天轮旋转的动画效果 1.CSS3 @keyframes 规则如需在 CSS3 中创建动画,您需要学习 @keyframes 规则.@keyframes 规则用于创建动画.在 @keyf ...

  5. ​结合异步模型,再次总结Netty多线程编码最佳实践

    更多技术分享可关注我 前言 本文重点总结Netty多线程的一些编码最佳实践和注意事项,并且顺便对Netty的线程调度模型,和异步模型做了一个汇总.原文:​​结合异步模型,再次总结Netty多线程编码最 ...

  6. H - 遥远的糖果 HihoCoder - 1478

    给定一个N x M的01矩阵,其中1表示人,0表示糖.对于每一个位置,求出每个位置离糖的最短距离是多少. 矩阵中每个位置与它上下左右相邻的格子距离为1. Input 第一行包含两个整数,N和M. 以下 ...

  7. implements Serializable

    implements Serializable 1. 序列化和反序列化 序列化: 把对象转换为字节序列的过程称为对象的序列化. 反序列化: 把字节序列恢复为对象的过程称为对象的反序列化. 在Java和 ...

  8. JVM系列十(虚拟机性能监控神器 - BTrace).

    BTrace 是什么? BTrace 是一个动态安全的 Java 追踪工具,它通过向运行中的 Java 程序植入字节码文件,来对运行中的 Java 程序热更新,方便的获取程序运行时的数据信息,并且,保 ...

  9. PTA数据结构与算法题目集(中文) 7-25

    PTA数据结构与算法题目集(中文)  7-25 7-25 朋友圈 (25 分)   某学校有N个学生,形成M个俱乐部.每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈.一个学生可以同时属于若干 ...

  10. 邮件服务TLS/SSL,CA证书

     邮件服务TLS/SSL,CA证书 案例1:OpenSSL及证书服务 案例2:邮件TLS/SSL加密通信 1 案例1:OpenSSL及证书服务 1.1 问题 本案例要求熟悉OpenSSL工具的基本使用 ...