Имя: Пароль:
1C
1С v8
Формирование ЭКсель файла.
0 antihacker
 
23.10.18
06:12
Всем привет ! задача такая. Нужно создать эксель файл и добавить туда несколько листов. И на каждый лист копировать на каждый лист по отдельности вновь созданный табличный документ. Это возможно ?
1 shadow_sw
 
23.10.18
06:21
можно
2 shadow_sw
 
23.10.18
06:22
создай кучу эксель файлов, собери их в один
3 antihacker
 
23.10.18
06:29
Да файлов создавать могу. А как собрать в один файл ? Вот не могу найти ответ.....
4 shadow_sw
 
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;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан