Цитата(VXIIIZ @ 27.02.19, 9:57)
Я пользуюсь вот этим способом
[необходимо зарегистрироваться для просмотра ссылки]
Что мешает давать ссылку на первоисточник?
[необходимо зарегистрироваться для просмотра ссылки]
Так как сам пользуюсь LibreOffice, а на некоторых рабочих машинах вообще ничего кроме 1С не установлено, то пишу так:
Функция ПолучитьТабДок()
ТабДок = Новый ТабличныйДокумент;
Диалог = РаботаСФайлами.ПолучитьДиалогВыбораФайлов(Ложь);
Диалог.ПроверятьСуществованиеФайла = Истина;
Диалог.Фильтр = "Все файлы xls (*.xls*)|*.*|";
Если Не Диалог.Выбрать() Тогда
Возврат ТабДок;
КонецЕсли;
Попытка
ТабДок.Прочитать(Диалог.ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
Исключение
ОбщегоНазначения.СообщитьОбОшибке("При чтении файла Excel произошла ошибка:
|" + ОписаниеОшибки());
Возврат ТабДок;
КонецПопытки;
Возврат ТабДок;
КонецФункции // ПолучитьТабДок()
А далее просто перебираю области табличного документа, подобно Эксель:
//Пока ЗначениеЗаполнено(Excel.Cells(1, Сч).Text) Цикл
Пока ЗначениеЗаполнено(ТабДок.Область(1,Сч).Текст) Цикл
ОбработкаПрерыванияПользователя();
//ИмяКолонки = Excel.Cells(1, Сч).Text;
ИмяКолонки = ТабДок.Область(1,Сч).Текст;
ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ","");
Если ИмяБезПробелов = "Код" Тогда
НоваяКолонка = Таблица.Колонки.Добавить(ИмяПредыдущейКолонки+ИмяБезПробелов, ТипСтрока,, 20);
ИначеЕсли ИмяБезПробелов = "Сумма" Тогда
НоваяКолонка = Таблица.Колонки.Добавить(ИмяБезПробелов, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(19, 4),, 20);
ИначеЕсли ИмяБезПробелов = "Дата" Тогда
НоваяКолонка = Таблица.Колонки.Добавить(ИмяБезПробелов, ОбщегоНазначения.ПолучитьОписаниеТиповДаты(ЧастиДаты.Дата),, 20);
Иначе
НоваяКолонка = Таблица.Колонки.Добавить(ИмяБезПробелов, ТипСтрока, ИмяКолонки, 20);
КонецЕсли;
ИмяПредыдущейКолонки = ИмяБезПробелов;
Сч = Сч + 1;
КонецЦикла;
А если заведомо известно, что все данные - строки или не надо с ними заморачиваться, то делаю так: (всего 3 строчки)
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область(1, 1, ТабДок.ВысотаТаблицы, Табдок.ШиринаТаблицы));
Построитель.Выполнить();
ТаблицаЗначений = Построитель.Результат.Выгрузить();
Еще можно читать с помощью adodb, но давно этот метод не использовал
[необходимо зарегистрироваться для просмотра ссылки]