|
При объединении нескольких файлов xls в один меняются цвета в результирующем файле | ☑ | ||
---|---|---|---|---|
0
Saari
26.10.23
✎
10:43
|
Формируется отчет и результат выводится в три печатные формы.
Необходимо эти три печатные формы сохранить программно в один файл xls с тремя закладками (листами). В результате процедуры (см. ниже) в результирующем файле сбиваются цвета ячеек. Причем перед объединением файлов в один цвета нормальные. Вот код: ТабДок = ВыводНаПечатьНаСервере("ОбщаяВыручка", "1"); ТабДок.Записать(Отчет.ВыбПутьКФайлу + "\temp1.xls", ТипФайлаТабличногоДокумента.XLS); ТабДок = ВыводНаПечатьНаСервере("Выручка1", "2"); ТабДок.Записать(Отчет.ВыбПутьКФайлу + "\temp2.xls", ТипФайлаТабличногоДокумента.XLS); ТабДок = ВыводНаПечатьНаСервере("Выручка2", "3"); ТабДок.Записать(Отчет.ВыбПутьКФайлу + "\temp3.xls", ТипФайлаТабличногоДокумента.XLS); ОбъектЭксель = ПолучитьCOMОбъект("", "Excel.Application"); ОбъектЭксель.SheetsInNewWorkbook = 1; ОбъектЭксель.DisplayAlerts = False; Книга = ОбъектЭксель.Workbooks.Add(); ИмяФайла = Отчет.ВыбПутьКФайлу + "\ОтчетВыруча.xls"; НомерЛиста = 1; Пока НомерЛиста <= 3 Цикл ИмяВременногоФайла = Отчет.ВыбПутьКФайлу + "\temp" + Строка(НомерЛиста) + ".xls"; ВременнаяКнига = ОбъектЭксель.Workbooks.Open(ИмяВременногоФайла); ЛистИсточник = ВременнаяКнига.WorkSheets(1); ЛистИсточник.Copy(Книга.WorkSheets(НомерЛиста)); Книга.WorkSheets(НомерЛиста).Name = ?(НомерЛиста = 1, "Общая выручка",?(НомерЛиста = 2, "Выручка1", "Выручка2")); ВременнаяКнига.Close(0); НомерЛиста = НомерЛиста + 1; КонецЦикла; Книга.Sheets(НомерЛиста).Delete(); ОбъектЭксель.Workbooks(1).Activate(); Книга.Worksheets(1).Activate(); Книга.SaveAs(ИмяФайла, 18); Книга.Close(0); ОбъектЭксель.Quit(); Помогите, пожалуйста, решить проблему с изменением цветов ячеек. |
|||
1
Волшебник
26.10.23
✎
10:43
|
Создайте корневой файл, где первой строчкой будут раскрашенные ячейки с палитрой документа. Строчку можно скрыть.
Объединяйте остальные файлы с корневым. |
|||
2
RomanYS
26.10.23
✎
10:45
|
(0) У 1С есть свой объект для сохранения многостраничных экселей - ПакетОтображаемыхДокументов
|
|||
3
Saari
26.10.23
✎
11:48
|
(1) Подскажите, пожалуйста, как форматировать текст, чтобы код был как в первом сообщении? Какие теги добавлять?
|
|||
4
Saari
26.10.23
✎
11:49
|
(2) Получилось! Только пока в итоговом файле листы не переименованы как нужно. Ищу как переименовать лист.
|
|||
5
DJ Anthon
26.10.23
✎
11:58
|
(4) что там искать?
//ОднаКнига = Новый ПакетОтображаемыхДокументов; //Элт = ОднаКнига.Состав.Добавить(); //Элт.Данные = ПоместитьВоВременноеХранилище(Содержимое); //Элт.Наименование = "Данные"; //Элт = ОднаКнига.Состав.Добавить(); //Элт.Данные = ПоместитьВоВременноеХранилище(Справочники); //Элт.Наименование = "Справочники"; //ОднаКнига.Записать(ПутьКФайлу, ТипФайлаПакетаОтображаемыхДокументов.XLSX); |
|||
6
Saari
26.10.23
✎
12:50
|
Всем спасибо!
Все получилось. И все же, как в сообщении на этом форуме указать, что текст кода процедуры 1С нужно отображать по особому? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |