Je reçois un fichier .xlsx d'un fournisseur et il contient une colonne pour la durée au format HH: mm: ss, qui lorsque j'ouvre le fichier dans Excel apparaît comme une date mais devrait être juste une chaîne.Comment puis-je résoudre une erreur System.FormatException sur l'analyse DateTime lors de l'utilisation de ExcelDataReader.CreateReader()?
Je voudrais lire ce fichier .xslx dans mon application C# en utilisant ExcelDataReader sans avoir à modifier ou supprimer manuellement la colonne avant d'exécuter mon application.
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
Cependant, lorsque je tente de créer un lecteur comme ci-dessus, je reçois l'erreur suivante:
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)
est-il un moyen de résoudre cette erreur?
il y avait un moyen de spécifier comment lire des colonnes avec un fichier supplémentaire. Je n'ai pas fait cela depuis des années mais cela peut valoir la peine d'être recherché. – user12345
Je dirais que cela pourrait bien être un bug dans ExcelDataReader. À votre place, je soumettrais un bug avec un MCVE aux mainteneurs. – Joe