diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2023-07-25 08:44:36 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2023-07-25 08:44:36 +0300 |
commit | 1f5aebe62ac1d20d087cc110dafda759158d0fa2 (patch) | |
tree | 849f89c49c8ae0ba2a2a66812f6007648a1d18e2 | |
parent | 159ac0ec574ff1bbe158125938ec717c6ad22c9f (diff) |
Headers Find optimization
-rw-r--r-- | RhSolutions.AddIn/Services/ExcelReader.cs | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/RhSolutions.AddIn/Services/ExcelReader.cs b/RhSolutions.AddIn/Services/ExcelReader.cs index a733403..207d043 100644 --- a/RhSolutions.AddIn/Services/ExcelReader.cs +++ b/RhSolutions.AddIn/Services/ExcelReader.cs @@ -93,26 +93,28 @@ public class ExcelReader : IReader, IDisposable string wbName = Path.GetFileNameWithoutExtension( worksheet.Parent.Name); - Range AmountCell = worksheet.Cells.Find(headers["Amount"]), - SkuCell = worksheet.Cells.Find(headers["Sku"]), - ProductLineCell = worksheet.Cells.Find(headers["ProductLine"]), - NameCell = worksheet.Cells.Find(headers["Name"]), - MeasureCell = worksheet.Cells.Find(headers["Measure"]); - var lastRowIndex = worksheet.Cells[worksheet.Rows.Count, SkuCell.Column] + Range amountCell = worksheet.Cells.Find(headers["Amount"]); + Range headerRow = amountCell.EntireRow; + Range skuCell = headerRow.Find(headers["Sku"]), + productLineCell = headerRow.Find(headers["ProductLine"]), + nameCell = headerRow.Find(headers["Name"]), + measureCell = headerRow.Find(headers["Measure"]); + + var lastRowIndex = worksheet.Cells[worksheet.Rows.Count, skuCell.Column] .End[XlDirection.xlUp].Row; Dictionary<Product, double> readResult = new(); - for (int row = AmountCell.Row + 1; row <= lastRowIndex; row++) + for (int row = amountCell.Row + 1; row <= lastRowIndex; row++) { - double? amount = worksheet.Cells[row, AmountCell.Column].Value2 as double?; + double? amount = worksheet.Cells[row, amountCell.Column].Value2 as double?; if (amount != null && amount.Value != 0) { - object productLine = worksheet.Cells[row, ProductLineCell.Column].Value2; - object name = worksheet.Cells[row, NameCell.Column].Value2; - object sku = worksheet.Cells[row, SkuCell.Column].Value2; - object measure = worksheet.Cells[row, MeasureCell.Column].Value2; + object productLine = worksheet.Cells[row, productLineCell.Column].Value2; + object name = worksheet.Cells[row, nameCell.Column].Value2; + object sku = worksheet.Cells[row, skuCell.Column].Value2; + object measure = worksheet.Cells[row, measureCell.Column].Value2; var productMeasure = measure?.ToString() switch { "м" => Measure.M, |