Java 导出Excel xlsx、xls, CSV文件
通用导出功能:
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文件的更多相关文章
- Java导出Excel和CSV(简单Demo)
Java导出Excel和CSV的简单实现,分别使用POI和JavaCSV. JavaBean public class ReportInfo { int id; String date; int nu ...
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- Java 解析Excel(xls、xlsx两种格式)
Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...
- [转载]Java导出Excel
一.需求介绍 当前B/S模式已成为应用开发的主流,而在开发企业办公系统的过程中,常常有客户这样子要求:把系统数据库中的数据导出到Excel,用户查看报表时直接用Excel打开.或者是:用户已经习惯用E ...
- java导出excel表格
java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...
- java导出excel报表
1.java导出excel报表: package cn.jcenterhome.util; import java.io.OutputStream;import java.util.List;impo ...
- java导出excel工具类
java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...
- xls/csv文件转换成dbf文件
转至:https://blog.csdn.net/linhai1028/article/details/80211252 编写的一个小脚本,主要是利用python中的pandas,xlrd,dbfpy ...
随机推荐
- CSAPP-bomblab
DO NOT READ THIS ARTICLE. I wrote bullshit in English. This lab I have finished once, so this articl ...
- 万字综述,核心开发者全面解读PyTorch内部机制
斯坦福大学博士生与 Facebook 人工智能研究所研究工程师 Edward Z. Yang 是 PyTorch 开源项目的核心开发者之一.他在 5 月 14 日的 PyTorch 纽约聚会上做了一个 ...
- 阿里开源首个移动AI项目,淘宝同款推理引擎
淘宝上用的移动AI技术,你也可以用在自己的产品中了. 刚刚,阿里巴巴宣布,开源自家轻量级的深度神经网络推理引擎MNN(Mobile Neural Network),用于在智能手机.IoT设备等端侧加载 ...
- Python第六章-函数05-迭代器&生成器
python作为一个既面向对象,又支持函数式编程的语言,函数的使用方面有很多特点. 比如:闭包,装饰器,迭代器等 函数的高级应用 容器:生活中常见的容器有哪些?袋子,盆子,水杯,书包,铅笔盒... 容 ...
- vscode vue 格式化 ESLint 检查 单引号 双引号 函数括号报错问题
vscode vue 格式化 最近重新搞了下电脑,重装了 vscode 软件,在用 vue 写项目的时候,照例开启了 ESLint 语法检查,但是发现在使用 vscode 格式化快捷键的时候(shif ...
- 非常诡异的IIS下由配置文件加上svg的mime头导致整个网站的静态文件访问报错误
调试了两天遇到一个非常诡异的问题 一个系统稳定运行了很多年,是用mvc5+WIN2008R2 + .NET 4.5 +IIS环境下运行,非常稳定,最近想迁移到一台新的服务器,为了少麻烦在阿里云上买了 ...
- Crash
一.Crash类型 crash 一般产生自 iOS 的微内核 Mach,然后在 BSD 层转换成 UNIX SIGABRT 信号,以标准 POSIX 信号的形式提供给用户.NSException 是使 ...
- Python操作JSON数据代码示例
#!/usr/bin/env python import json import os def json_test(): return_dic = {} json_data = { 'appid':' ...
- Spinner的简单实用
1.Spinner的功能 Spinner在Android中主要实现的是一个下拉列表,这个下拉列表相当于弹出一个弹出一个菜单供用户选择.即Spinner提供一个快速的方法从一组中选择一个值,默认状态下S ...
- 原生js弹力球
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...