Имя: Пароль:
1C
1С v8
8.2 Чтение из xls в табличный документ. Страницы
0 1dvd
 
26.09.17
14:36
Делаю чтение xls файла в табличный документ и напоролся на проблему


    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(ИмяФайла);
    
    КоличествоСтрок = ТабДок.ВысотаТаблицы;
    КоличествоКолонок = ТабДок.ШиринаТаблицы;
    
    Если КоличествоКолонок = 0 Или КоличествоСтрок = 0 Тогда
        Сообщить("Не удалось прочитатьФайл");
        Возврат;
    КонецЕсли;
    
    ИменаКолонок = Новый Соответствие;
    Для Идн = 1 по КоличествоКолонок Цикл
        Значение = ТабДок.Область(1, Идн, 1, Идн).Текст;
        ИменаКолонок.Вставить(Значение, Идн);
    КонецЦикла;


Он считывает одновременно со всех листов. Как указать конкретный лист?
1 Cyberhawk
 
26.09.17
14:37
В случае xls штатно никак. В случае с xlsx легко.
2 1dvd
 
26.09.17
14:37
(1) ок. Как в случае xlsx?
3 Cyberhawk
 
26.09.17
14:42
(2) Читать методом, за которым закрепилось название "Native XLSX". Распаковываешь xlsx-файл как зип-архив в папку, далее через ЧтениеХМЛ (или ПостроительДОМ) работаешь с хмл-файликом
"XL\WorkSheets\Sheet" + ФайлНомерЛиста + ".xml"
4 Cyberhawk
 
26.09.17
14:42
Пример, например, тут: http://catalog.mista.ru/public/225624/
5 1dvd
 
26.09.17
14:42
пелять... это это легко
6 1dvd
 
26.09.17
14:43
кривая одинеска
7 Cyberhawk
 
26.09.17
14:44
(5) Просто в одних листах могут быть ссылки на ячейки с других листов.
Если такого нет, то можно методом из (3) удалить ненужные листы и запаковать файл обратно и потом уже читать через ТабДок :)
8 1dvd
 
26.09.17
14:51
похрен. скажу чтобы подсовывали однолистный файл