Skip to content

Instantly share code, notes, and snippets.

@oremb
Forked from UGureev/module.bsl
Last active January 28, 2022 06:42
Show Gist options
  • Save oremb/15b885e2839f2ae8784256f0456b1f88 to your computer and use it in GitHub Desktop.
Save oremb/15b885e2839f2ae8784256f0456b1f88 to your computer and use it in GitHub Desktop.
Прочитать лист Excel в таблицу значений #1C #Excel #ТаблицаЗначений
// Считывает лист Excel в таблицу значений для дальнейшей обработки
//
// Параметры:
// Адрес - путь к файлу
// НомерЛиста - номер листа Excel по порядку (по умолчанию 1)
// НомерПервойСтроки - строка, с которой необходимо начать считывание (по умолчанию 1)
// НомерПервойКолонки - колонка, с которой необходимо начать считывание (по умолчанию 1)
// ВсегоСтрок - последняя строка диапазона (по умолчанию последняя строка с данными)
// ВсегоКолонок - последняя колонка диапазона (по умолчанию последняя колонка с данными)
//
// Возвращаемое значение:
// Таблица значений с загруженными значениями из Excel
//
Функция ПрочитатьЛистExcel(Адрес, НомерЛиста = 1, НомерПервойСтроки = 1, НомерПервойКолонки = 1, ВсегоСтрок = 0, ВсегоКолонок = 0) Экспорт
ExcelApplication = Новый COMObject("Excel.Application");
ФайлЭксель = ExcelApplication.WorkBooks.Open(Адрес);
ЛистЭксель = ФайлЭксель.Sheets(НомерЛиста);
Если ВсегоСтрок = 0 Тогда
ВсегоСтрок = ЛистЭксель.Cells.SpecialCells(11).Row;
КонецЕсли;
Если ВсегоКолонок = 0 Тогда
ВсегоКолонок = ЛистЭксель.Cells.SpecialCells(11).Column;
КонецЕсли;
Если ТЗ = Неопределено Тогда
ТЗ = Новый ТаблицаЗначений;
Для Счетчик = 1 По ВсегоКолонок Цикл
ТЗ.Колонки.Добавить("Колонка"+Счетчик, Новый ОписаниеТипов("Строка"));
КонецЦикла;
КонецЕсли;
Для Счетчик = НомерПервойСтроки По ВсегоСтрок Цикл
НоваяСтрока = ТЗ.Добавить();
КонецЦикла;
Область = ЛистЭксель.Range(ЛистЭксель.Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Cells(ВсегоСтрок,ВсегоКолонок));
Данные = Область.Value.Выгрузить();
Для Счетчик = 0 По ВсегоКолонок-1 Цикл
ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик);
КонецЦикла;
ExcelApplication.DisplayAlerts = 0;
ExcelApplication.Quit();
ExcelApplication = Неопределено;
Возврат ТЗ;
КонецФункции
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment