首页 > 其他分享 >【easyExcel 导出】

【easyExcel 导出】

时间:2022-10-17 12:09:37浏览次数:60  
标签:String sellerName 导出 response export query filename easyExcel


一:原因

近几年项目中,一直会使用easyExcel ,1.封装性 2.性能较好,3.使用方便,所以目前在新需求中,一般会采用该方式。

二:使用

引入pom 文件:

<!-- easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>

导出工具类:

static void exportModule(String filename, HttpServletResponse response, Class<?> classModule, List<?> data) throws IOException {

response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename*=utf-8'zh_cn'"+ getFilename(filename));
EasyExcel.write(response.getOutputStream(), classModule).sheet("1").doWrite(data);
}
private static String getFilename(String filename) throws UnsupportedEncodingException {

String fileName = filename+ DateUtils.formatDate(new Date());
return URLEncoder.encode(fileName,"UTF-8") +".xlsx";
}

导出实体vo定义:

public class OrderExportVo implements Serializable {

/**
* 卖家姓名 value 指导出标题 index 指位置
*/
@ExcelProperty(value = "卖家姓名",index = 0)
private String sellerName;

public String getSellerName() {
return sellerName;
}

public void setSellerName(String sellerName) {
this.sellerName = sellerName;
}

controller 调用:

RequestMapping("/export")
public PoppyResponse<?> export(HttpServletResponse response,
@RequestParam(required = false, value = "startDate") String startDate,
@RequestParam(required = false, value = "endDate") String endDate) {
try {
//查询符合条件的订单信息
List<Vo> exportUsers = new ArrayList<>();
QueryVo query = new QueryVo();
int page = 1;
int pageSize = 100;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
if (startDate != null) {
Long start = dateFormat.parse(startDate).getTime();
query.setStartTime(start);
}
if (endDate != null) {
Long end = dateFormat.parse(endDate).getTime();
query.setEndTime(end);
}
query.setPageSize(pageSize);
query.setOrderStatus(status);
logger.info("query:{}", JSON.toJSONString(query));
while (true) {
query.setCurPage(page++);
// 这里是业务代码,分页查询
Page<Vo> list = xxxService.query(query);
if (CollectionUtils.isEmpty(list.getContents())) {
break;
}
exportUsers.addAll(list.getContents());
//最大导出数据 10万
if (page > 100000) {
break;
}
}
ExcelUtils.exportModule("export_info_", response, OrderExportVo.class, exportUsers);
} catch (Exception e) {
logger.error("export error ", e);
}
return PoppyResponse.success("export success");
}

三:总结

要善于总结,善于积累,未来加油!


标签:String,sellerName,导出,response,export,query,filename,easyExcel
From: https://blog.51cto.com/u_15586641/5762040

相关文章

  • 使用conda/pip命令实现anaconda 虚拟环境的导入导出
    一.使用conda命令实现虚拟环境的导入导出1.从计算机a中导出虚拟环境test的相关信息condaactivatetest #先切换到test虚拟环境condaenvexport>C:\users\sgj\des......
  • Azure DevOps Server 2022新功能:导入和导出到CSV文件,实现批量修改工作项
    AzureDevOpsServer(之前名称为TFS)作为微软的软件研发管理平台产品,由于系统涉及到软件开发的全过程和多种角色,服务器中积累了大量的软件开发过程数据,例如需求、评审、Bug和......
  • ES6导出与导入
    ES6导出与导入导出//声明并导出成员(最终会导出一个对象)exportleta=123;exportletb=234;export{x}//导出默认成员exportdefault{}......
  • db2 导入导出工具
    一、概述DB2提供了三个用于数据移动的程序:export:使用sqlselect语句将数据从数据库表中提取到一个文件中import:将输入文件中的数据导入到表中load:将输入文件中的数据导入到......
  • springboot导出数据到Excel表格,使用EasyExcel
    1.导入依赖导出方法需要使用到fastJson的依赖,这里也直接导入点击查看代码<!--阿里的easyexcel--><dependency><groupId>com.alibaba</groupId>......
  • asp.net core +vue 导出excel
      定义Excel专用特性名(应用导出表格列名) 引入Nuget包1.Microsoft.AspNetCore.Hosting2.DotNetCore.NPOI   引入包usingNPOI.SS.UserModel;usingN......
  • springboot整合easyExcel实现不固定列导入
    1、pom.xml文件引入easyExcel<!--阿里开源easyExcel依赖--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><versio......
  • django-import-expor处理导入和导出数据的库
    顾名思义,django-import-export是一个用于处理导入和导出数据的库。它支持多种格式,包括xls、csv、json、yaml以及tablib支持的所有其他格式。它还可以轻松与Django管理后台......
  • ALV 导出电子表格的文件格式固定的删除办法
    在ALV显示中,选择菜单“列表-导出-电子表格”后,会出现下面这样的选择窗口:如果选中了“始终使用选定的格式”,则以后都会使用当前选定的格式(经常是第一项MHTML,可实际上用户希......
  • 项目中导出功能(word)
    导出方法:fileName:导出word文件名称this.url.exportword:接口地址,返回blob文件流exportsMethod(){letfileName=this.info.lcmcgetActionBlob(this.url.......