• java用easyexcel按模版导出


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

    名称为 financeReportBillStandardTemplateExcel.xlsx:

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

    要是需要给属性设置格式之类的,例如:我们这里设置千分符并且保留两位小数,可进行如下图所示的操作,先选中所要设置的单元格,然后右键点击,选中设置单元格格式,就会弹出下图的操作,可以进行配置格式

    接下来是实体类

    1. package com.citicsc.galaxy.finance.lq;
    2. import com.fasterxml.jackson.annotation.JsonFormat;
    3. import lombok.AllArgsConstructor;
    4. import lombok.Builder;
    5. import lombok.Data;
    6. import lombok.NoArgsConstructor;
    7. import java.math.BigDecimal;
    8. import java.util.Date;
    9. /**
    10. * @ClassName StandardBillFieldsDTO
    11. * @Description TODO
    12. * @Author houbing
    13. * @Date 2023/9/18 10:07
    14. */
    15. @Data
    16. @Builder
    17. @NoArgsConstructor
    18. @AllArgsConstructor
    19. public class StandardBillFieldsDTO {
    20. private String id;
    21. //利息收入(利息归本)
    22. private BigDecimal interest;
    23. //股息红利
    24. private BigDecimal dividend;
    25. //资金余额
    26. private BigDecimal availableCash;
    27. //资产市值
    28. private BigDecimal assetMv;
    29. //非上市股票市值
    30. private BigDecimal unlistedMv;
    31. //当日国债逆回购发生额
    32. private BigDecimal debtReverseRepurchase;
    33. //出入金净额
    34. private BigDecimal netCash;
    35. //其他资金变动
    36. private BigDecimal otherCash;
    37. //总资金变动
    38. private BigDecimal totalCashInout;
    39. //交易费用
    40. private BigDecimal fee;
    41. //利息收入
    42. private BigDecimal interestIncome;
    43. //权利金收支
    44. private BigDecimal netPremium;
    45. //执行实收资金
    46. private BigDecimal realReceiveCash;
    47. //执行实付资金
    48. private BigDecimal realPaymentCash;
    49. //现金替代实收资金
    50. private BigDecimal realOffsetCashIn;
    51. //现金替代实付资金
    52. private BigDecimal realOffsetCashOut;
    53. //执行冻结资金
    54. private BigDecimal frozenCash;
    55. //市值权益
    56. private BigDecimal totalMv;
    57. //股票市值
    58. private BigDecimal stockMv;
    59. //买券金额
    60. private BigDecimal buySecuritiesAmount;
    61. //做市商交易经手费优惠
    62. private BigDecimal marketDiscount;
    63. //累计平仓盈亏
    64. private BigDecimal closePnl;
    65. //累计浮动盈亏
    66. private BigDecimal floatPnl;
    67. //其他交易费用
    68. private BigDecimal otherFee;
    69. }

    这里只展示部分字段。

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

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

  • 相关阅读:
    MIT 6.S081学习笔记(第〇章)
    价值1000元的稀有二开版的无限坐席在线客服系统源码+教程
    ubuntu 清理缓存
    dubbo Can not lock the registry cache file
    websocket服务部署在内网,app无法访问
    数据结构算法合集——链表篇
    华为云智能化组装式交付方案 ——金融级PaaS业务洞察及Web3实践的卓越贡献
    44.【list链表的简单属性】
    Nginx实现高并发原理是什么?该考虑如何优化?
    web_class01
  • 原文地址:https://blog.csdn.net/weixin_52774180/article/details/133019425