我从供应商处收到一个 .xlsx 文件,它包含一个 HH:mm:ss 格式的持续时间列,当我在 Excel 中打开文件时,它显示为日期,但实际上应该只是一个字符串。
我想使用 ExcelDataReader 将此 .xslx 文件读入我的 c# 应用程序,而无需在运行我的应用程序之前手动修改或删除该列。
FileStream fs = File.Open(extractedFilePath, FileMode.Open, FileAccess.Read);
var reader = ExcelReaderFactory.CreateReader(fs);
//I've also tried using ExcelReaderFactory.CreateOpenXmlReader(fs) and get the same error
但是,当我尝试按上述方式创建阅读器时,出现以下错误:
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
at System.DateTime.ParseExact(String s, String format, IFormatProvider provider, DateTimeStyles style)
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorksheet.ConvertCellValue(String rawValue, String aT, String aS)
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorksheet.ReadCell(XmlReader xmlReader, Int32 nextColumnIndex)
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorksheet.ReadRow(XmlReader xmlReader, Int32 nextRowIndex)
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorksheet.<ReadSheetData>d__73.MoveNext()
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorksheet.<ReadWorksheetStream>d__71.MoveNext()
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorksheet.<ReadWorksheetStream>d__70.MoveNext()
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorksheet.ReadWorksheetGlobals()
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorksheet..ctor(ZipWorker document, XlsxWorkbook workbook, XlsxBoundSheet refSheet)
at ExcelDataReader.Core.OpenXmlFormat.XlsxWorkbook.<ReadWorksheets>d__45.MoveNext()
at ExcelDataReader.ExcelDataReader`2.Reset()
at ExcelDataReader.ExcelOpenXmlReader..ctor(Stream stream, ExcelReaderConfiguration configuration)
at ExcelDataReader.ExcelReaderFactory.CreateOpenXmlReader(Stream fileStream, ExcelReaderConfiguration configuration)
有没有办法解决这个错误?