From 8d636d22362890bd9225eba7e19b54984884ca1f Mon Sep 17 00:00:00 2001 From: Chris Risager Date: Mon, 30 Jan 2023 12:43:44 +0100 Subject: [PATCH] Changed how cells in a record is selected --- src/CsvHelper.Excel/ExcelParser.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/CsvHelper.Excel/ExcelParser.cs b/src/CsvHelper.Excel/ExcelParser.cs index 4a95186..e3e3c34 100644 --- a/src/CsvHelper.Excel/ExcelParser.cs +++ b/src/CsvHelper.Excel/ExcelParser.cs @@ -23,6 +23,8 @@ public class ExcelParser : IParser private int _rawRow = 1; private string[] _currentRecord; private readonly int _lastRow; + private readonly int _firstColumn; + private readonly int _lastColumn; /// /// Initializes a new instance of the class. @@ -118,8 +120,9 @@ public ExcelParser(Stream stream, string sheetName, CsvConfiguration configurati _lastRow = lastRowUsed.RowNumber(); var cellsUsed = _worksheet.CellsUsed(); - Count = cellsUsed.Max(c => c.Address.ColumnNumber) - - cellsUsed.Min(c => c.Address.ColumnNumber) + 1; + _firstColumn = cellsUsed.Min(c => c.Address.ColumnNumber); + _lastColumn = cellsUsed.Max(c => c.Address.ColumnNumber); + Count = _lastColumn - _firstColumn + 1; } Context = new CsvContext(this); @@ -204,7 +207,7 @@ public Task ReadAsync() private string[] GetRecord() { var currentRow = _worksheet.Row(Row); - var cells = currentRow.Cells(1, Count); + var cells = currentRow.Cells(_firstColumn, _lastColumn); var values = Configuration.TrimOptions.HasFlag(TrimOptions.Trim) ? cells.Select(x => x.Value.ToString()?.Trim()).ToArray() : cells.Select(x => x.Value.ToString()).ToArray();