Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Формирование ЭКсель файла.

Формирование ЭКсель файла.
Я
   antihacker
 
23.10.18 - 06:12
Всем привет ! задача такая. Нужно создать эксель файл и добавить туда несколько листов. И на каждый лист копировать на каждый лист по отдельности вновь созданный табличный документ. Это возможно ?
 
 
   shadow_sw
 
1 - 23.10.18 - 06:21
можно
   shadow_sw
 
2 - 23.10.18 - 06:22
создай кучу эксель файлов, собери их в один
   antihacker
 
3 - 23.10.18 - 06:29
Да файлов создавать могу. А как собрать в один файл ? Вот не могу найти ответ.....
   shadow_sw
 
4 - 23.10.18 - 06:38
Файл = Новый COMОбъект("Excel.Application");    
    ФСО = Новый COMОбъект("Scripting.FileSystemObject");
    
    ПутьКниги ="c:\temp\"+"123.xls";
    СписокФайлов = Новый ТаблицаЗначений;
    СписокФайлов.Колонки.Добавить("Путь");
    НС = СписокФайлов.Добавить();
    НС.Путь ="c:\temp\" +"1.xls";
    НС = СписокФайлов.Добавить();
    НС.Путь ="c:\temp\"+"2.xls";
    НС = СписокФайлов.Добавить();
    НС.Путь ="c:\temp\"+"3.xls";

    
    
    Файл.Visible = 0;    
    Файл.DisplayAlerts = 0;
    Попытка                          
        Книга = Файл.Workbooks.Open(ПутьКниги);
    Исключение
        Книга = Файл.Workbooks.Add();
        Книга.SaveAs(ПутьКниги);
    КонецПопытки;
    
    Для Каждого ФайлЛиста Из СписокФайлов Цикл
        НовоеИмяЛиста = ФСО.GetBaseName(ФайлЛиста.Путь);
        
        Попытка                          
            Лист = Файл.Workbooks.Open(ФайлЛиста.Путь);
        Исключение
            Продолжить;
        КонецПопытки;
        Если ФайлЛиста.Путь ="c:\temp\"+"1.xls" Тогда 
            Лист.Worksheets(1).Name  = "1";
            Лист.Worksheets(1).Copy(Книга.Worksheets(1));
            Лист.Close(0);
        КонецЕсли;    
        Если ФайлЛиста.Путь ="c:\temp\"+"2.xls" Тогда 
            Лист.Worksheets(1).Name  = "2";
            Лист.Worksheets(1).Copy(Книга.Worksheets(1));
            Лист.Close(0);
        КонецЕсли;
            Если ФайлЛиста.Путь ="c:\temp\"+"3.xls" Тогда 
            Лист.Worksheets(1).Name  = "3";
            Лист.Worksheets(1).Copy(Книга.Worksheets(1));
            Лист.Close(0);
        КонецЕсли;    

        
       Книга.Save();
    КонецЦикла;
    
    Книга.Save();
    Книга.Close(-1);
    Файл = 0;

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует