EPPlus设置[h]:mm:ss格式后单元格值未更新,SUM函数失效
解决EPPlus设置[h]:mm:ss格式不生效的问题
问题根源
你将timeWorked定义为string类型,Excel的时间格式仅对**数值类型(日期/时间值)**生效。字符串数据即使设置了格式,也不会被Excel识别为时间,必须手动回车触发解析才会显示正常,同时字符串无法被SUM函数计算,因为SUM只对数值有效。
解决方案
修改属性类型
将实体类的timeWorked从string改为TimeSpan(推荐)或double(Excel中时间以小数存储,1代表一整天):[EpplusTableColumn(Order = 2, NumberFormat = "[h]:mm:ss")] public TimeSpan timeWorked { get; set; }转换原始字符串数据
如果你的原始数据是字符串格式(如"12:34:56"),需要先转为TimeSpan再赋值:string rawTimeStr = "12:34:56"; TimeSpan.TryParse(rawTimeStr, out var timeSpan); var listItem = new YourEntity { timeWorked = timeSpan };验证效果
修改后,EPPlus会自动将TimeSpan转换为Excel可识别的时间数值,设置的[h]:mm:ss格式会直接生效,无需手动回车,且SUM函数能正常计算总时长。
内容的提问来源于stack exchange,提问作者LHS
相关产品推荐
相关产品推荐

