aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2023-07-25 08:44:36 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2023-07-25 08:44:36 +0300
commit1f5aebe62ac1d20d087cc110dafda759158d0fa2 (patch)
tree849f89c49c8ae0ba2a2a66812f6007648a1d18e2
parent159ac0ec574ff1bbe158125938ec717c6ad22c9f (diff)
Headers Find optimization
-rw-r--r--RhSolutions.AddIn/Services/ExcelReader.cs26
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,