diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2022-01-26 17:41:46 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2022-01-26 17:41:46 +0300 |
commit | 4a2ca16d8b4aa34041adb558b2db91709908aff5 (patch) | |
tree | cae92d48ebca2cd696a176ed61055a385cf20e93 /src/PriceListTools/PriceListSheet.cs | |
parent | d688578a46e3a3383371c1df952fa2898c828a9a (diff) |
Watch only current sheets in files
Diffstat (limited to 'src/PriceListTools/PriceListSheet.cs')
-rw-r--r-- | src/PriceListTools/PriceListSheet.cs | 55 |
1 files changed, 41 insertions, 14 deletions
diff --git a/src/PriceListTools/PriceListSheet.cs b/src/PriceListTools/PriceListSheet.cs index 8a34c2f..9ac2af1 100644 --- a/src/PriceListTools/PriceListSheet.cs +++ b/src/PriceListTools/PriceListSheet.cs @@ -1,5 +1,6 @@ using Microsoft.Office.Interop.Excel; using System.Collections.Generic; +using System; namespace RehauSku.PriceListTools { @@ -7,13 +8,22 @@ namespace RehauSku.PriceListTools { private const string amountHeader = "Кол-во"; private const string skuHeader = "Актуальный материал"; + private const string groupHeader = "Программа"; public readonly Worksheet Sheet; public readonly string Name; public Dictionary<string, double> SkuAmount { get; private set; } + + Range amountCell { get; set; } + Range skuCell { get; set; } + Range groupCell { get; set; } + public int headerRowNumber { get; private set; } public int amountColumnNumber { get; private set; } public int skuColumnNumber { get; private set; } + public int groupColumnNumber { get; private set; } + public Dictionary<PriceListPosition, Range> Map { get; private set; } + public PriceListSheet(Worksheet sheet) { @@ -21,28 +31,28 @@ namespace RehauSku.PriceListTools Name = sheet.Name; SkuAmount = new Dictionary<string, double>(); - FillSkuAmount(); - } - - public bool FillSkuAmount() - { - Range amountCell = Sheet.Cells.Find(amountHeader); - Range skuCell = Sheet.Cells.Find(skuHeader); + amountCell = Sheet.Cells.Find(amountHeader); + skuCell = Sheet.Cells.Find(skuHeader); + groupCell = Sheet.Cells.Find(groupHeader); - if (amountCell == null || skuCell == null) + if (amountCell == null || skuCell == null || groupCell == null) { - AddIn.Excel.StatusBar = $"Лист {Name} не распознан"; - return false; + throw new ArgumentException($"Лист { Name } не распознан"); } + FillSkuAmount(); + } + + private void FillSkuAmount() + { headerRowNumber = amountCell.Row; skuColumnNumber = skuCell.Column; amountColumnNumber = amountCell.Column; - object[,] amountColumn = Sheet.Columns[amountColumnNumber].Value2; - object[,] skuColumn = Sheet.Columns[skuColumnNumber].Value2; + object[,] amountColumn = Sheet.Columns[amountCell.Column].Value2; + object[,] skuColumn = Sheet.Columns[skuCell.Column].Value2; - for (int row = headerRowNumber + 1; row < amountColumn.GetLength(0); row++) + for (int row = amountCell.Row + 1; row < amountColumn.GetLength(0); row++) { object amount = amountColumn[row, 1]; object sku = skuColumn[row, 1]; @@ -56,8 +66,25 @@ namespace RehauSku.PriceListTools SkuAmount.Add(sku.ToString(), (double)amount); } } - return true; } + + //public void CreateMap() + //{ + // Range amountCell = Sheet.Cells.Find(amountHeader); + // Range skuCell = Sheet.Cells.Find(skuHeader); + // Range groupCell = Sheet.Cells.Find(groupHeader); + + // headerRowNumber = amountCell.Row; + // skuColumnNumber = skuCell.Column; + // amountColumnNumber = amountCell.Column; + // groupColumnNumber = groupCell.Column; + + // for (int row = headerRowNumber + 1; row < skuCell.Rows.Count; row++) + // { + // string sku = + // } + + //} } } |