IronXL加载.xlsx文件抛出'date not well formatted'错误如何解决
报错原因
IronXL默认加载Excel时会自动推断单元格数据类型,你文件中存在两种不同的日期格式(纯日期MM/dd/yyyy和带时间的日期MM/dd/yyyy hh:mm:ss tt),同列的格式差异会触发类型推断冲突,导致加载报错。你只删除第一个带特殊日期格式工作表的对应列就能解决问题,是因为IronXL按工作表顺序逐个解析,第一个遇到冲突的工作表会直接抛出异常,后续工作表还未完成解析。
解决方案1:调整加载配置,规避类型推断冲突
使用LoadExcel的重载方法传入自定义加载配置,两种可选配置方式:
方式A:关闭自动类型转换(最稳妥)
所有单元格默认按原始字符串读取,后续业务逻辑里按需自行转换类型,完全避免格式识别冲突:
using IronXL; using IronXL.Options; var loadOptions = new LoadOptions { ConvertDataTypes = false }; var thisWorkBook = WorkBook.LoadExcel(path, loadOptions);
方式B:指定支持的日期解析格式
如果需要保留IronXL的自动类型转换能力,把你文件里用到的两种日期格式都加到可识别列表里即可:
using IronXL; using IronXL.Options; var loadOptions = new LoadOptions { RecognizedDateTimeFormats = new string[] { "MM/dd/yyyy", "MM/dd/yyyy hh:mm:ss tt" } }; var thisWorkBook = WorkBook.LoadExcel(path, loadOptions);
解决方案2:按需加载工作表
你可以指定只加载需要用到的工作表,跳过不需要的工作表,从根源避免触发冲突:
using IronXL; using IronXL.Options; var loadOptions = new LoadOptions { // 按实际需求填写要加载的工作表名称即可 LoadSheets = new List<string> { "hourly - position1", "Schedule - position1" } }; var thisWorkBook = WorkBook.LoadExcel(path, loadOptions);
内容的提问来源于stack exchange,提问作者Z-Statistic
相关产品推荐
相关产品推荐

