java用easyexcel按模版导出

news/2024/12/2 16:09:21/

首先在项目的resources下面建一个template包,之后在下面创建一个模版,模版格式如下:

名称为 financeReportBillStandardTemplateExcel.xlsx:

{.fee}类型的属性值,是下面实体类的属性,要注意这里面的格式,不能错,还需要注意就是驼峰,例如:{.stockMv},要跟实体类的属性名保持一致,否则在导入的时候就会出现null之类的问题。

接下来是实体类

package com.citicsc.galaxy.finance.lq;import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import java.math.BigDecimal;
import java.util.Date;/*** @ClassName StandardBillFieldsDTO* @Description TODO* @Author houbing* @Date 2023/9/18 10:07*/@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StandardBillFieldsDTO {private String id;//利息收入(利息归本)private BigDecimal interest;//股息红利private BigDecimal dividend;//资金余额private BigDecimal availableCash;//资产市值private BigDecimal assetMv;//非上市股票市值private BigDecimal unlistedMv;//当日国债逆回购发生额private BigDecimal debtReverseRepurchase;//出入金净额private BigDecimal netCash;//其他资金变动private BigDecimal otherCash;//总资金变动private BigDecimal totalCashInout;//交易费用private BigDecimal fee;//利息收入private BigDecimal interestIncome;//权利金收支private BigDecimal netPremium;//执行实收资金private BigDecimal realReceiveCash;//执行实付资金private BigDecimal realPaymentCash;//现金替代实收资金private BigDecimal realOffsetCashIn;//现金替代实付资金private BigDecimal realOffsetCashOut;//执行冻结资金private BigDecimal frozenCash;//市值权益private BigDecimal totalMv;//股票市值private BigDecimal stockMv;//买券金额private BigDecimal buySecuritiesAmount;//做市商交易经手费优惠private BigDecimal marketDiscount;//累计平仓盈亏private BigDecimal closePnl;//累计浮动盈亏private BigDecimal floatPnl;//其他交易费用private BigDecimal otherFee;}

这里只展示部分字段。

 接下来就直接在controller层中进行导出

@ApiOperation(value = "交易账户基础数据查询表")@PostMapping("/exportBill")public void exportBill(@RequestBody @Validated TraAccBillReq req ,HttpServletResponse response) throws Exception {response.setContentType("application/octet-stream");String fileName = URLEncoder.encode("交易账户基础数据查询表" + DateUtils.formatStr(req.getTradingDay()), "utf-8");response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");//查询数据库的数据List<StandardBillFieldsDTO> dtos = lqAppService.queryBillFieldList(req);if (CollectionUtils.isNotEmpty(dtos)) {FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();WriteSheet sheet = EasyExcel.writerSheet(0).build();ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(new ClassPathResource("template/financeReportBillStandardTemplateExcel.xlsx").getInputStream()).build();excelWriter.fill(dtos, fillConfig, sheet);excelWriter.finish();} else {throw new BizException("未查询到账单信息");}}


http://www.ppmy.cn/news/1116645.html

相关文章

开源日报 0824 | 构建UI组件和页面的前端工作坊

Storybook 是一个用于构建 UI 组件和页面的前端工作坊&#xff0c;支持多种主流框架&#xff0c;提供丰富的插件&#xff0c;具有可配置性强和扩展性好的特点。 storybookjs/storybook Stars: 79.9k License: MIT Storybook 是一个用于构建 UI 组件和页面的前端工作坊&#x…

Laravel Swagger 使用完整教程

Swagger 使用 一、Swagger 基础1、 什么是Swagger2、 安装过程1 、composer安装2、添加服务提供者&#xff0c;引导框架运行时加载&#xff0c;在 app 配置文件&#xff0c;providers 选项中添加(laravel 5以上忽略此步骤)3、配置完成后&#xff0c;通过输入命令 **php artisan…

mac使用指南

新公司给配备了mac&#xff0c;可惜土鳖的我不会用&#xff0c;所以特地写了一篇文章记录学习mac的过程 快捷键 删除&#xff1a;commanddelete 光标移至最右/左&#xff1a;command右/左箭头 截图&#xff1a;commandshift3/4/5&#xff0c;3代表截全屏&#xff0c;4代表选…

TCP/IP客户端和服务器端建立通信过程

客户端和服务器端建立通信过程 客户端 connectToHost(const QString &, quint16 , QIODevice::OpenMode , QAbstractSocket::NetworkLayerProtocol )服务器端

在vscode中做实验出现的bug......

1、python如何调用opencv中的saliency模块 如果你已经安装了opencv-python的库&#xff0c;但是调用cv2.saliency方法时出现了如下的报错&#xff1a; module ‘cv2.saliency’ has no attribute ‘StaticSaliencySpectralResidual_create’ 这时你只需要卸载opencv-python库&a…

Jmeter接口自动化和Python接口自动化,如何选择?

选择Jmeter或Python进行接口自动化测试取决于您的具体需求和环境。以下是一些可以考虑的因素&#xff1a; 1. 语言熟悉度&#xff1a;如果您对Java更熟悉&#xff0c;那么Jmeter可能是更好的选择。而如果您的团队或个人对Python更熟悉&#xff0c;那么Python可能是更好的选择。…

Leetcode---363周赛

题目列表 2859. 计算 K 置位下标对应元素的和 2860. 让所有学生保持开心的分组方法数 2861. 最大合金数 2862. 完全子集的最大元素和 一、计算k置为下标对应元素的和 简单题&#xff0c;直接暴力模拟&#xff0c;代码如下 class Solution { public:int sumIndicesWithKS…

坚鹏:中国邮储银行金融科技前沿技术发展与应用场景第3期培训

中国邮政储蓄银行金融科技前沿技术发展与应用场景第3期培训圆满结束 中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力&#xff0c;是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市&#xff0c;2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点…