通用导出功能:

  1.支持Excel xlsx、xls

  2.支持CSV文件导出

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

4.支持大批量数据导出

使用步骤如下

导入jar

  1. <dependency>
  2. <groupId>com.github.catdou</groupId>
  3. <artifactId>common-export</artifactId>
  4. <version>1.3</version>
  5. </dependency>

导出方式一:List 数据导出

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

  1. public ExportParam buildUserExportParam() {
  2. Map<String, String> fieldColumnMap = new HashMap<>();
  3. fieldColumnMap.put("A", "userName");
  4. fieldColumnMap.put("C", "seq");
  5. fieldColumnMap.put("B", "passWord");
  6. // build setter method
  7. List<Method> getterMethod = ExportCommon.buildParamGetter(User.class, fieldColumnMap);
  8. return new ExportParam()
  9. .setHeader("username,password,seq")
  10. .setGetterMethod(getterMethod);
  11. }

2.导出数据到文件

csv 文件

  1. public void testExportCsvPath() {
  2. String exportDir = "file" + File.separator + UUID.randomUUID().toString();
  3. File dirFile = new File(exportDir);
  4. dirFile.mkdirs();
  5. String filePath = exportDir + File.separator + "test.csv";
  6. ExportParam exportParam = buildUserExportParam();
  7. CsvExport csvExport = new CsvExport(filePath, exportParam);
  8. List<User> userList = createDataList(100);
  9. csvExport.exportList(userList);
  10.  
  11. }

excel 文件

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

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

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

  1. public void testExcel2007() {
  2. ExportParam exportParam = buildUserExportParam();
  3. String exportDir = "file" + File.separator + UUID.randomUUID().toString();
  4. File dirFile = new File(exportDir);
  5. dirFile.mkdirs();
  6. String filePath = exportDir + File.separator + "test.xlsx";
  7. List<User> userList = createDataList(Constants.EXCEL_MAX_ROW_XLSX * 2);
  8. BaseExport baseExport = new ExcelExport(filePath, null, false, exportParam);
  9. baseExport.exportList(userList);
  10. }
  11.  
  12. public void testManySheet() {
  13. String exportDir = "file" + File.separator + UUID.randomUUID().toString();
  14. File dirFile = new File(exportDir);
  15. dirFile.mkdirs();
  16. String filePath = exportDir + File.separator + "test-many.xlsx";
  17. ExportParam exportParam1 = buildUserExportParam();
  18. ExportParam exportParam2 = buildUserExportParam();
  19. Map<Integer, ExportParam> exportParamMap = new HashMap<>(16);
  20. exportParamMap.put(0, exportParam1);
  21. exportParamMap.put(1, exportParam2);
  22. ExcelMultiSheetExport excelMultiSheetExport = new ExcelMultiSheetExport(filePath, null,
  23. false, exportParamMap);
  24. List<User> userList = createDataList(Constants.EXCEL_MAX_ROW_XLSX * 3);
  25. excelMultiSheetExport.exportListByParamIndex(userList, 0);
  26. excelMultiSheetExport.exportListByParamIndex(userList, 1, true);
  27. }

项目地址

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. CSAPP-bomblab

    DO NOT READ THIS ARTICLE. I wrote bullshit in English. This lab I have finished once, so this articl ...

  2. 万字综述,核心开发者全面解读PyTorch内部机制

    斯坦福大学博士生与 Facebook 人工智能研究所研究工程师 Edward Z. Yang 是 PyTorch 开源项目的核心开发者之一.他在 5 月 14 日的 PyTorch 纽约聚会上做了一个 ...

  3. 阿里开源首个移动AI项目,淘宝同款推理引擎

    淘宝上用的移动AI技术,你也可以用在自己的产品中了. 刚刚,阿里巴巴宣布,开源自家轻量级的深度神经网络推理引擎MNN(Mobile Neural Network),用于在智能手机.IoT设备等端侧加载 ...

  4. Python第六章-函数05-迭代器&生成器

    python作为一个既面向对象,又支持函数式编程的语言,函数的使用方面有很多特点. 比如:闭包,装饰器,迭代器等 函数的高级应用 容器:生活中常见的容器有哪些?袋子,盆子,水杯,书包,铅笔盒... 容 ...

  5. vscode vue 格式化 ESLint 检查 单引号 双引号 函数括号报错问题

    vscode vue 格式化 最近重新搞了下电脑,重装了 vscode 软件,在用 vue 写项目的时候,照例开启了 ESLint 语法检查,但是发现在使用 vscode 格式化快捷键的时候(shif ...

  6. 非常诡异的IIS下由配置文件加上svg的mime头导致整个网站的静态文件访问报错误

    调试了两天遇到一个非常诡异的问题 一个系统稳定运行了很多年,是用mvc5+WIN2008R2  + .NET 4.5 +IIS环境下运行,非常稳定,最近想迁移到一台新的服务器,为了少麻烦在阿里云上买了 ...

  7. Crash

    一.Crash类型 crash 一般产生自 iOS 的微内核 Mach,然后在 BSD 层转换成 UNIX SIGABRT 信号,以标准 POSIX 信号的形式提供给用户.NSException 是使 ...

  8. Python操作JSON数据代码示例

    #!/usr/bin/env python import json import os def json_test(): return_dic = {} json_data = { 'appid':' ...

  9. Spinner的简单实用

    1.Spinner的功能 Spinner在Android中主要实现的是一个下拉列表,这个下拉列表相当于弹出一个弹出一个菜单供用户选择.即Spinner提供一个快速的方法从一组中选择一个值,默认状态下S ...

  10. 原生js弹力球

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...