ТабличныйДокумент, Excel и значения

1. Pasha1st 838 15.04.16 10:32 Сейчас в теме
1С8.3 позволяет читать книги Excel в ТабличныйДокумент() даже при отсутствии установленного Excel. Тестирую на 8.3.7 платформе. В связи с чем возникло несколько вопросов:
1. Судя по всему даты считываются как текстовое представление с учетом форматирования, без сохранения значения - как я понимаю это не лечится?
2. Если в книге есть несколько листов - загружаются они все, через разделитель страниц. Способа выбора листа я не нашел - так?
3. Можно ли в сформированном табличном документе программно найти разделители страниц?

Способы получить данные при помощи COM/ADO я знаю.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. 6есик 52 15.04.16 16:09 Сейчас в теме
Для того что бы считывались значения, а не текст в ячейках есть параметр СпособЧтенияЗначенийТабличногоДокумента.Значение :
ТабличныйДокумент.Прочитать(Файл, СпособЧтенияЗначенийТабличногоДокумента.Значение);


По поводу разбиения прочтенного табличного документа есть идея как костыль сделать :
1. С помощью метода ПолучитьОбласть() в цикле расширять область прибавляя по 1 строке пока метод КоличествоСтраниц() примененный к нашей области не станет равным 2
2. Со следующими страницами поступаем аналогично.
3. Pasha1st 838 15.04.16 16:51 Сейчас в теме
Спасибо! Что-то я второй параметр у Прочитать() пропустил. С поиском разделителя попробую.
4. Pasha1st 838 15.04.16 18:17 Сейчас в теме
С поиском разделителя тоже работает.
Маленький хинт - ячейки могут быть объединёнными. Чтобы не попасть на такую имеет смысл брать ячейки за пределами таблицы, и цикл может выглядеть примерно так:

Для НС=1 по ТабДок.ВысотаТаблицы-1 цикл
  Если ТабДок.ПолучитьОбласть(НС,ТабДок.ШиринаСтраницы,НС+1).КоличествоСтраниц()>1 тогда
   Сообщить("Нашли разделитель!");
  КонецЕсли;
КонецЦикла;


Я сначала пробовал с ПроверитьВывод() вместо КоличествоСтраниц(), но он игнорирует разделители.

И напоминание - если в системе не установлено ни одного принтера, будет исключение.
5. VovanD 28.04.17 15:58 Сейчас в теме
Если ТабДок.Область("R" + Формат(НС,"ЧГ=0")).КонецСтраницы Тогда
Сообщить("Нашли разделитель!")
КонецЕсли;

Работает намного быстрее.
Acort; user717534; +2 Ответить
6. user730384 28.04.17 18:56 Сейчас в теме
Если ТабДок.Область("R"+НомСтр).КонецСтраницы тогда
Сообщить("Область "+ТабДок.Область("R"+НомСтр));
КонецЕсли;
Acort; user717534; +2 Ответить
7. Seraph6 04.02.21 13:08 Сейчас в теме
Нашел вашу тему в поисках способа работать с Excel без COM-объекта.
Если вам нужен выбор конкретного листа и вы знаете его имя или порядковый номер, то можно просто получить этот лист в отдельный ТабличныйДокумент через .ПолучитьОбласть(<имя листа>).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот