2.5 KiB
2.5 KiB
心理健康测评明细导出功能进一步优化记录
导出格式优化(2025-07-24 19:00)
问题描述
导出功能已经可以正常工作,但仍存在以下问题:
- 出生日期字段仍然显示时间部分,需要只显示年月日
- 导出的Excel列宽需要优化,以便更好地显示内容
问题分析
-
日期格式问题:
@JsonFormat注解主要用于JSON序列化,对Excel导出的影响有限- 需要使用专门的Excel日期格式注解来控制导出格式
-
列宽问题:
- Excel导出时默认使用了
LongestMatchColumnWidthStyleStrategy自动适配列宽 - 但可能需要进一步确保这个功能正常工作
- Excel导出时默认使用了
解决方案
-
使用专门的Excel日期格式注解:
- 添加
cn.idev.excel.annotation.DateTimeFormat注解 - 设置格式为
yyyy-MM-dd,只显示年月日
- 添加
-
确保列宽自动适配:
- 确认导出方法中使用了
LongestMatchColumnWidthStyleStrategy - 这个策略会根据内容自动调整列宽
- 确认导出方法中使用了
修改内容
-
XljkEvaluationDetailVo.java:
// 修改前 /** * 出生日期 */ @ExcelProperty(value = "出生日期") @JsonFormat(pattern = "yyyy-MM-dd") private Date birthDate; // 修改后 /** * 出生日期 */ @ExcelProperty(value = "出生日期") @DateTimeFormat("yyyy-MM-dd") private Date birthDate; -
导入相关包:
import cn.idev.excel.annotation.DateTimeFormat; -
确保导出方法使用自动列宽:
// 在ExcelUtil.exportExcel方法中已包含以下设置 .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
测试结果
修改后,导出的Excel中出生日期只显示年月日,格式为yyyy-MM-dd,并且列宽会根据内容自动调整,使内容尽可能完整显示。
相关文件
backend/ruoyi-modules/ruoyi-xljk/src/main/java/org/dromara/xljk/domain/vo/XljkEvaluationDetailVo.javabackend/ruoyi-modules/ruoyi-xljk/src/main/java/org/dromara/xljk/controller/XljkEvaluationDetailController.java
注意事项
@DateTimeFormat注解专门用于控制Excel导出中的日期格式LongestMatchColumnWidthStyleStrategy策略会根据内容自动调整列宽,但对于特别长的内容可能仍然会被截断- 如果后续需要更精细的列宽控制,可以考虑使用自定义的列宽策略
修改人员:李旭明
修改时间:2025-07-24 19:00