Войти

Login to your account

Username *
Password *
Remember Me
// Считывает лист 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 = Неопределено;
	  
	  Возврат ТЗ;
	  
  КонецФункции