using System; using System.Collections.Generic; using ClosedXML.Excel; using DeclarationAutomatization.Models; namespace DeclarationAutomatization.Services; // Читает справочник ТН ВЭД → код декларации из внешнего xlsx-файла. // Ожидаемый формат: лист "новые", колонка B = ТН ВЭД, колонка C = код. public class CodesImportService { private const string SheetName = "новые"; public List ReadEntries(string filePath) { using var workbook = new XLWorkbook(filePath); IXLWorksheet? sheet = null; foreach (var ws in workbook.Worksheets) { if (ws.Name.Equals(SheetName, StringComparison.OrdinalIgnoreCase)) { sheet = ws; break; } } if (sheet == null) throw new InvalidOperationException($"Лист '{SheetName}' не найден в файле: {filePath}"); var result = new List(); int lastRow = sheet.LastRowUsed()?.RowNumber() ?? 1; for (int r = 1; r <= lastRow; r++) { var tnVed = sheet.Cell(r, 2).GetString().Trim(); var code = sheet.Cell(r, 3).GetString().Trim(); if (tnVed.Length != 10 || string.IsNullOrWhiteSpace(code)) continue; result.Add(new CodeLookupEntry { TnVed = tnVed, Codes = new List { code }, }); } return result; } }