Загрузить в таблицу значений 2 колонки из ексель
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Функция ПолучитьЛистыТДИзФайлаЭлектронныхТаблиц(ФайлЭксель = неопределено) Экспорт
Перем соотвЛистыКниги;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
// ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.Фильтр = "Excel (*.xls;*.xlsx)|*.xls;*.xlsx";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файл Excel";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ФайлЭксель = ДиалогОткрытияФайла.ПолноеИмяФайла;
соотвЛистыКниги = ПолучитьЛисты_из_ЭлектронныхТаблиц(ФайлЭксель, истина);
КонецЕсли;
Возврат соотвЛистыКниги;
КонецФункции
Функция ПолучитьЛисты_из_ЭлектронныхТаблиц(ИмяФайла, ЗначенияКакТекст = ложь) Экспорт
тд = Новый ТабличныйДокумент();
Попытка
тд.Прочитать(ИмяФайла, ?(ЗначенияКакТекст, СпособЧтенияЗначенийТабличногоДокумента.Текст, СпособЧтенияЗначенийТабличногоДокумента.Значение));
Исключение
ВызватьИсключение СтрШаблон("Не удалось прочитать файл! Ошибка: %1", ОписаниеОшибки());
КонецПопытки;
соотвЛистыКниги = Новый Соответствие;
Для Каждого ОбластьТД ИЗ тд.Области Цикл
Попытка
новтд = тд.ПолучитьОбласть(ОбластьТД.Имя);
Исключение
ВызватьИсключение Стршаблон("Не удалось прочитать лист %1! Ошибка: %2", ОбластьТД.Имя, ОписаниеОшибки());
КонецПопытки;
соотвЛистыКниги[ОбластьТД.Имя] = новтд;
КонецЦикла;
тд = неопределено;
Возврат соотвЛистыКниги;
КонецФункции
Функция ПолучитьТЗизТД(тд_, ИмяОбласти = "", ЧтениеСоСтроки = 1) Экспорт
перем тзЛиста;
перем ИмяКолонки;
пз = Новый ПостроительЗапроса();
Если ПустаяСтрока(ИмяОбласти) Тогда
тд = тд_.ПолучитьОбласть(1, 1, тд_.ВысотаТаблицы, тд_.ШиринаТаблицы);
Иначе
тд = тд_.ПолучитьОбласть(ИмяОбласти);
КонецЕсли;
ОбластьТД = тд.Область();
Область = тд.Область(ЧтениеСоСтроки, ОбластьТД.Лево, ОбластьТД.Низ, ОбластьТД.Право);
ПустаяТаблица = Область.Верх = Область.Низ;
пз.ИсточникДанных = Новый ОписаниеИсточникаДанных(Область);
пз.Выполнить();
тзЛиста = пз.Результат.Выгрузить();
Если ПустаяТаблица И тзЛиста.Количество() = 1 Тогда
тзЛиста.Очистить();
КонецЕсли;
Возврат тзЛиста;
КонецФункции
Показать
Сам ранее адаптировал с интернета:
Функция ПреобразоватьТабличныйДокументВТаблицуЗначений(ТабДокумент) экспорт
ПоследняяСтрока = ТабДокумент.ВысотаТаблицы;
ПоследняяКолонка = ТабДокумент.ШиринаТаблицы;
ОбластьЯчеек = ТабДокумент.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);
// Создаем описание источника данных на основании области ячеек табличного документа.
ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);
// Создаем объект для интеллектуального построения отчетов,
// указываем источник данных и выполняем построение отчета.
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных = ИсточникДанных;
ПостроительОтчета.Выполнить();
// Результат выгружаем в таблицу значений.
ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
Возврат ТабЗначений
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот