|
|
|
При объединении нескольких файлов 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С нужно отображать по особому? |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |