1С8.3 позволяет читать книги Excel в ТабличныйДокумент() даже при отсутствии установленного Excel. Тестирую на 8.3.7 платформе. В связи с чем возникло несколько вопросов:
1. Судя по всему даты считываются как текстовое представление с учетом форматирования, без сохранения значения - как я понимаю это не лечится?
2. Если в книге есть несколько листов - загружаются они все, через разделитель страниц. Способа выбора листа я не нашел - так?
3. Можно ли в сформированном табличном документе программно найти разделители страниц?
Способы получить данные при помощи COM/ADO я знаю.
1. Судя по всему даты считываются как текстовое представление с учетом форматирования, без сохранения значения - как я понимаю это не лечится?
2. Если в книге есть несколько листов - загружаются они все, через разделитель страниц. Способа выбора листа я не нашел - так?
3. Можно ли в сформированном табличном документе программно найти разделители страниц?
Способы получить данные при помощи COM/ADO я знаю.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для того что бы считывались значения, а не текст в ячейках есть параметр СпособЧтенияЗначенийТабличногоДокумента.Значение :
По поводу разбиения прочтенного табличного документа есть идея как костыль сделать :
1. С помощью метода ПолучитьОбласть() в цикле расширять область прибавляя по 1 строке пока метод КоличествоСтраниц() примененный к нашей области не станет равным 2
2. Со следующими страницами поступаем аналогично.
ТабличныйДокумент.Прочитать(Файл, СпособЧтенияЗначенийТабличногоДокумента.Значение);
По поводу разбиения прочтенного табличного документа есть идея как костыль сделать :
1. С помощью метода ПолучитьОбласть() в цикле расширять область прибавляя по 1 строке пока метод КоличествоСтраниц() примененный к нашей области не станет равным 2
2. Со следующими страницами поступаем аналогично.
С поиском разделителя тоже работает.
Маленький хинт - ячейки могут быть объединёнными. Чтобы не попасть на такую имеет смысл брать ячейки за пределами таблицы, и цикл может выглядеть примерно так:
Я сначала пробовал с ПроверитьВывод() вместо КоличествоСтраниц(), но он игнорирует разделители.
И напоминание - если в системе не установлено ни одного принтера, будет исключение.
Маленький хинт - ячейки могут быть объединёнными. Чтобы не попасть на такую имеет смысл брать ячейки за пределами таблицы, и цикл может выглядеть примерно так:
Для НС=1 по ТабДок.ВысотаТаблицы-1 цикл
Если ТабДок.ПолучитьОбласть(НС,ТабДок.ШиринаСтраницы,НС+1).КоличествоСтраниц()>1 тогда
Сообщить("Нашли разделитель!");
КонецЕсли;
КонецЦикла;
Я сначала пробовал с ПроверитьВывод() вместо КоличествоСтраниц(), но он игнорирует разделители.
И напоминание - если в системе не установлено ни одного принтера, будет исключение.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот