From b73e2c4c37835b8805fb23af91a83b6b9bd8ce40 Mon Sep 17 00:00:00 2001 From: TheObliterator Date: Sun, 17 Sep 2023 20:13:40 +0100 Subject: [PATCH] Fix ExcelParser ignoring the requested Culture (BREAKING CHANGE) Note: This fix may cause breaking behaviours as previously the culture conversion was ignored. ExcelParser defaulted to an InvariantCulture in the constructor but actually defaulted to the user's CurrentCulture during parsing. If a specific culture was specified during construction or in the CsvConfiguration, this was also ignored during parsing. Cause: XLCellValue.ToString() defaults to the user's current culture unless a specific culture is supplied as an optional parameter. This fix passes the Configuration.CultureInfo to the XLCellValue.ToString() to ensure the requested culture is used. --- src/CsvHelper.Excel/ExcelParser.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CsvHelper.Excel/ExcelParser.cs b/src/CsvHelper.Excel/ExcelParser.cs index 4a95186..78a3d15 100644 --- a/src/CsvHelper.Excel/ExcelParser.cs +++ b/src/CsvHelper.Excel/ExcelParser.cs @@ -206,8 +206,8 @@ private string[] GetRecord() var currentRow = _worksheet.Row(Row); var cells = currentRow.Cells(1, Count); var values = Configuration.TrimOptions.HasFlag(TrimOptions.Trim) - ? cells.Select(x => x.Value.ToString()?.Trim()).ToArray() - : cells.Select(x => x.Value.ToString()).ToArray(); + ? cells.Select(x => x.Value.ToString(Configuration.CultureInfo)?.Trim()).ToArray() + : cells.Select(x => x.Value.ToString(Configuration.CultureInfo)).ToArray(); return values; }