Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-24-lixuming-9.md
T
2025-07-25 11:27:52 +08:00

2.5 KiB
Raw Blame History

心理健康测评明细导出功能进一步优化记录

导出格式优化(2025-07-24 19:00)

问题描述

导出功能已经可以正常工作,但仍存在以下问题:

  1. 出生日期字段仍然显示时间部分,需要只显示年月日
  2. 导出的Excel列宽需要优化,以便更好地显示内容

问题分析

  1. 日期格式问题:

    • @JsonFormat 注解主要用于JSON序列化,对Excel导出的影响有限
    • 需要使用专门的Excel日期格式注解来控制导出格式
  2. 列宽问题:

    • Excel导出时默认使用了 LongestMatchColumnWidthStyleStrategy 自动适配列宽
    • 但可能需要进一步确保这个功能正常工作

解决方案

  1. 使用专门的Excel日期格式注解:

    • 添加 cn.idev.excel.annotation.DateTimeFormat 注解
    • 设置格式为 yyyy-MM-dd,只显示年月日
  2. 确保列宽自动适配:

    • 确认导出方法中使用了 LongestMatchColumnWidthStyleStrategy
    • 这个策略会根据内容自动调整列宽

修改内容

  1. XljkEvaluationDetailVo.java:

    // 修改前
    /**
     * 出生日期
     */
    @ExcelProperty(value = "出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthDate;
    
    // 修改后
    /**
     * 出生日期
     */
    @ExcelProperty(value = "出生日期")
    @DateTimeFormat("yyyy-MM-dd")
    private Date birthDate;
    
  2. 导入相关包:

    import cn.idev.excel.annotation.DateTimeFormat;
    
  3. 确保导出方法使用自动列宽:

    // 在ExcelUtil.exportExcel方法中已包含以下设置
    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
    

测试结果

修改后,导出的Excel中出生日期只显示年月日,格式为yyyy-MM-dd,并且列宽会根据内容自动调整,使内容尽可能完整显示。

相关文件

  • backend/ruoyi-modules/ruoyi-xljk/src/main/java/org/dromara/xljk/domain/vo/XljkEvaluationDetailVo.java
  • backend/ruoyi-modules/ruoyi-xljk/src/main/java/org/dromara/xljk/controller/XljkEvaluationDetailController.java

注意事项

  • @DateTimeFormat 注解专门用于控制Excel导出中的日期格式
  • LongestMatchColumnWidthStyleStrategy 策略会根据内容自动调整列宽,但对于特别长的内容可能仍然会被截断
  • 如果后续需要更精细的列宽控制,可以考虑使用自定义的列宽策略

修改人员:李旭明
修改时间:2025-07-24 19:00