Ускорение чтения данных из файла Excel с использованием объекта Range

Версия для печатиPDF-версия

Для ускорения чтения данных из файлов Excel можно использовать объект Range, который представляет собой ячейку, строку, столбец или группу ячеек, содержащую один или несколько смежных блоков ячеек или объемный диапазон.

Суть процесса такова: подключаемся к файлу Excel, считываем указанный диапазон ячеек в переменную, далее работаем уже с этой переменной, имеющей тип COMSafeArray и представлящей из себя по сути многомерный массив.

// Подключение к Excel
Попытка
	Эксель = Новый COMОбъект("Excel.Application");
Исключение
	Возврат;
КонецПопытки;
Эксель.DisplayAlerts = 0;
Эксель.Visible = 0; 

// Открытие файла
Попытка
	Эксель.Application.Workbooks.Open(ИмяФайла);
Исключение
	Возврат;
КонецПопытки;
КоличествоСтрок = Эксель.Cells(1,1).SpecialCells(11).Row;
КоличествоКолонок = Эксель.Cells(1,1).SpecialCells(11).Column;

// Считывание данных
Диапазон = Эксель.Range(Эксель.Cells(1,1), Эксель.Cells(КоличествоСтрок,КоличествоКолонок)).Value;

// Закрытие файла
Эксель.ActiveWorkbook.Close(); Эксель.Quit();

Далее получение данных ячеек осуществляется с помощью метода GetValue(<НомерКолонки>,<НомерСтроки>). В данном случае нумерация колонок и строк начинается с 0.

ДанныеЯчейки_2_5 = Диапазон.getValue(2,5);

Использование объекта Range даёт существенное снижение затрат времени при чтении данных из файлов Excel по сравнению с построчным чтением. Особенно ускорение ощутимо при обработке больших файлов.

Полезность материала: 
Голосов пока нет
Оцените полезность материала
© При копировании материалов сайта ссылка на оригинал обязательна.