Рис.4. Ячейка с возможностью выбора значения

Каждый IT специалист когда-то сталкивался с автоматизацией через Excel. Excel – отличный инструмент для мелких автоматизаций, вычислений, даже для небольших баз данных. Все до момента, когда эта для решения на Excel не встает вопрос одновременной многопользовательской работы.

Использовать Excel можно и для многопользовательской работы. Имею опыт нескольких успешных внедрений Office Online вместе с SharePoint 2019. Office Online , конечно, накладывает ограничения, например, не работают макросы в режиме работы с файлом в браузере, но все равно это очень удобная штука, т.к. в основном работа в Excel идет сданными и их анализом.

Но чаще в жизни разработчика требуется из Excel вытащить данные для дальнейшей загрузки в другие системы. Зачастую намного проще и быстрей преобразовать файл в CSV и дальше считать в массив, но если не хочется заниматься сохранением вручную, если в файлах несколько листов, то лучше освоить способы чтение данных из Excel.

Из современных решений мне очень нравится EPPlus - подключается к проекту C# (.Net, Net.Core) через Nuget. Для публичных сервисов с открытым кодом библиотеку можно использовать бесплатно, для коммерческих проектов нужно купить лицензию.

Пример чтения данных из Excel файла, код на C#. Тип приложения – Net.Core 5. Для работы добавьте в файл класса using OfficeOpenXml и using System.IO.

 public void ReadExcel ()
    {
        using (ExcelPackage package = new ExcelPackage(new FileInfo(@"C:\\Projects\\ReadXL\\ReadXL\\tax-report-2021-01-01-2021-12-31.xlsx")))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets["Итоговые расчёты"];

            //Чтение ячейки листа
            var r = worksheet.Cells["A10"].Value;
            Console.WriteLine(r);

            //Чтение диапазона
            var rng = worksheet.Cells["A10:B30"];
            foreach(var q in rng)
            {
                Console.WriteLine(q.Address.ToString() + " : " +  q.Value);
            }
        }
    }