Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 мая 2024, 11:02

Выгрузка Эксель в Табличный документ

Автор adamina, 19 сен 2023, 17:37

0 Пользователей и 1 гость просматривают эту тему.

adamina

Добрый день.
Подскажите, пожалуйста.

Делаю обработку: Загрузить несколько эксель файлов из каталога (Скопировать ячейки) и выгрузить по шаблону все в 1 эксель файл
Сейчас в переменной "ПолучениеЯчейки" я вижу нужные мне данные, но что делать дальше не пойму
Как мне их теперь записать и выгрузить

////////////////////////////////////////////////////////////////////////////
ТабДок = Новый ТабличныйДокумент;   
   ТабДок.Прочитать(ПутьКФайлуНаСервере, СпособЧтенияЗначенийТабличногоДокумента.Значение);

   КоличествоСтрок = ТабДок.ВысотаТаблицы;
    КоличествоКолонок = ТабДок.ШиринаТаблицы;   

   Для НомерСтроки = НомерПервойСтроки1 По КоличествоСтрок Цикл 
      
      Для НомерКолонки = 1 По КоличествоКолонок Цикл   
         ПолучениеЯчейки      = ТабДок.Область(НомерСтроки,НомерКолонки).Текст;
         
         
      КонецЦикла;
      
   КонецЦикла;     
////////////////////////////////////////////////////////////////////////////

antoneus

А дальше нужно создать еще один табличный документ, заполнить его по шаблону (возможно, получить области макета, заполнить параметры в них и вывести в этот табличный документ), потом сохранить этот табличный документ в файл.

adamina

antoneus, на словах я тоже так все вижу)) в этой же итерации цикла где есть переменная "ПолучениеЯчейки" я создаю ещё табдок1 и добавляю табдок1.добавить(ПолучениеЯчейки) как то так?

antoneus

Нет, табдок1 надо создать до цикла, а в цикле его заполнять.

adamina

antoneus, окей. У меня получится табдок1 со всеми добавлеными колонками, а как в таком случае сопоставить эти данные. Эксель документы не имеют одной структуры

antoneus

Я не знаю, какие данные нужно сопоставлять и каким образом, вслепую ничего посоветовать не могу, конкретики никакой вообще сказать не можете? Ну вот буквально, вопрос звучит так: "у меня есть файлы эксель, нужно прочитать данные и сопоставить их, как это сделать"?

Возможно, каждый файл можно читать по отдельности и вручную задавать номера колонок, из каких нужно брать данные, возможно, номер колонки можно определять по заголовку, способ зависит от задачи, когда ее удастся четко сформулировать - могут сразу определиться какие-то пути для решения. "Правильно сформулированный вопрос содержит половину ответа".

adamina

antoneus,

Составить мэппинг Номер колонки в файле с данными - Номер колонки в шаблоне.

antoneus

Это разовая задача или ее нужно выполнять регулярно? Структура загружаемых файлов прямо совсем случайная или есть паттерн какой-нибудь?

adamina

antoneus, сперва хотя-бы разово сделать)
Будет паттерн строка с цифрой для каждой колонки(как в товарной накладной)

antoneus

Ну навскидку - сделать n реквизитов формы, тип Число, в них вколотить номера колонок, нажать кнопку, запускающую чтение, дальше типа

Для НомерСтроки = НомерПервойСтроки1 По КоличествоСтрок Цикл
     
     ДанныеПервойКолонки = ТабДок.Область(НомерСтроки, НомерПервойКолонки).Текст;
     ДанныеВторойКолонки = ТабДок.Область(НомерСтроки, НомерВторойКолонки).Текст;//НомерПервойКолонки, НомерВторойКОлонки - реквизиты формы

    //выводим данные в шаблон
         
КонецЦикла;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск