Release v2.4.0
- 2026.09.11 - v2.4.0
- ✨ 新增: 导出时
DateTime/DateTime?列写成真正的日期单元格(序列号 + 日期格式),Excel 可以排序、筛选、参与计算,null写成空单元格;Dictionary<string, object>与DataTable导出中的DateTime值同样处理 - 查看 DateTimeFormats.md - ✨ 新增:
[ExcelColumn(Format = ...)]的 .NET 日期格式串自动翻译成对应的 Excel 数字格式(yyyy-MM-dd HH:mm:ss→yyyy-mm-dd hh:mm:ss,yyyy年MM月dd日→yyyy"年"mm"月"dd"日"),未指定时为yyyy-mm-dd hh:mm:ss;已经是 Excel 拼写的格式(m/d/yy、[$-409]d-mmm-yy、yyyy/m/d;@)原样使用 - ✨ 新增:
ExcelExporterOptions.DateTimeAsText,恢复 v2.3 及之前把日期写成文本的导出方式;DataTable导出新增接受 options 的重载ObjectToExcelBytes(DataTable, Action<ExcelExporterOptions>) - 🐛 修复公式列接管带自定义
Format的DateTime列时公式被丢弃、改写成模型值文本的问题:现在保留公式并套用日期格式(公式若返回数字而非日期,用FormulaResultType声明) - 🐛 修复日期单元格读进
string属性或Dictionary<string, object>时得到46276.6这类序列号的问题:现按单元格格式渲染成yyyy-MM-dd、HH:mm:ss或两者,[h]:mm这类经过时间仍按数字读;数值属性(double、decimal等)始终取原始数字 -
⚠️ 行为变更: Excel 日历不覆盖 1900 年之前(1904 日期系统的工作簿为 1904 年之前),这类日期(尤其default(DateTime))仍按Format渲染成文本写入;hh不带tt时显示 24 小时制,Excel 没有不带 AM/PM 标记的 12 小时制