Чтение Excel
Обычное чтение
&НаКлиентеАсинх Процедура ПрочитатьФайл(Команда)
Расширение = "xlsx";
ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов; ПараметрыДиалога.Заголовок = "Выберите файл"; ПараметрыДиалога.Фильтр = ФильтрПоРасширению(Расширение);
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога); Если ОписаниеФайла = Неопределено Тогда Возврат; КонецЕсли;
АдресДанных = ОписаниеФайла.Адрес;
Расширение = ОписаниеФайла.СсылкаНаФайл.Файл.Расширение;
ПрочитатьФайлНаСервере(АдресДанных, Расширение);
КонецПроцедуры
&НаСервереПроцедура ПрочитатьФайлНаСервере(АдресДанных, Расширение)
ПутьКФайлу = ПолучитьИмяВременногоФайла(Расширение); ДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанных);
ДанныеФайла.Записать(ПутьКФайлу);
ТабДок = Новый ТабличныйДокумент; ТабДок.Прочитать(ПутьКФайлу);
КоличествоСтрок = ТабДок.ВысотаТаблицы; КоличествоКолонок = ТабДок.ШиринаТаблицы;
// Обработка
УдалитьФайлы(ПутьКФайлу);
КонецПроцедуры
Построитель запроса
&НаКлиентеАсинх Процедура ПрочитатьФайл(Команда)
Расширение = "xlsx";
ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов; ПараметрыДиалога.Заголовок = "Выберите файл"; ПараметрыДиалога.Фильтр = ФильтрПоРасширению(Расширение);
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога); Если ОписаниеФайла = Неопределено Тогда Возврат; КонецЕсли;
АдресДанных = ОписаниеФайла.Адрес;
Расширение = ОписаниеФайла.СсылкаНаФайл.Файл.Расширение;
ПрочитатьФайлНаСервере(АдресДанных, Расширение);
КонецПроцедуры
&НаСервереПроцедура ПрочитатьФайлНаСервере(АдресДанных, Расширение)
ПутьКФайлу = ПолучитьИмяВременногоФайла(Расширение); ДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанных);
ДанныеФайла.Записать(ПутьКФайлу);
ТабДок = Новый ТабличныйДокумент; ТабДок.Прочитать(ПутьКФайлу);
КоличествоСтрок = ТабДок.ВысотаТаблицы; КоличествоКолонок = ТабДок.ШиринаТаблицы;
// Вариант 1, Произвольная область ОбластьЯчеек = ТабДок.Область(1, 1, КоличествоСтрок, КоличествоКолонок);
Построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек); Построитель.Выполнить();
ТаблицаДанных = Построитель.Результат.Выгрузить();
// Вариант 2, Область = вся таблица Построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область()); ТаблицаДанных = Построитель.Результат.Выгрузить();
// Обработка
УдалитьФайлы(ПутьКФайлу);
КонецПроцедуры