|
ПакетОтображаемыхДокументов в платформе ниже 8.3.12 | ☑ | ||
|---|---|---|---|---|
|
0
Chameleon1980
25.04.19
✎
11:33
|
Привет всем.
Встала задачка сохранить разные ТД на разные листы Excel. быстро нашел объект "ПакетОтображаемыхДокументов", но он, вроде работает с платформы от 8.3.12 (у мну пока ниже - так нужно). Чем можно воспользоваться? Кто как делал? |
|||
|
1
Chameleon1980
25.04.19
✎
11:35
|
вроде как листы это области (если открыть файл ексель в табличный документ)
но тупое сохранение опять в ексель такого тд дает плоский ексель |
|||
|
2
Chameleon1980
25.04.19
✎
12:32
|
с просторов:
Процедура СохранитьОтчетыВФайлExcelСЛистами(СписокОтчетов, ИмяФайла) Экспорт Эксель = New COMObject("Excel.Application"); Первый = истина; //Для защиты от дублей имен СооИмена = Новый СписокЗначений(); //Перебираем отчеты в MXL Для Каждого Элемент ИЗ СписокОтчетов Цикл ТабДок = Элемент.Значение; //ТабДок.Показать(); ИмяВременногоФайла = ПолучитьИмяВременногоФайла("XLS"); ТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLS); //Сохраняем в временный файл ТекКнига = Эксель.Workbooks.Open(ИмяВременногоФайла); Если Первый Тогда Книга = ТекКнига; //Первый файл и есть результат, чтобы сохранялись цвета Иначе ТекКнига.Sheets(1).Copy(, Книга.Sheets(Книга.Sheets.Count)); //Copy(Before, After) КонецЕсли; //Защита от одинаковых ярлыков ТекБазаНаименование = Элемент.Представление; ТекНаименование = ТекБазаНаименование; СчНаименований = 2; Пока СооИмена.НайтиПоЗначению(ТекНаименование) <> Неопределено Цикл ТекНаименование = ТекБазаНаименование + "(" + СчНаименований + ")"; СчНаименований = СчНаименований + 1; КонецЦикла; СооИмена.Добавить(ТекНаименование); Книга.Sheets(Книга.Sheets.Count).Name = ТекНаименование; //Переименовываем Если Первый Тогда //Делаем доступными ярлыки листов Эксель.ActiveWindow.DisplayWorkbookTabs = 1; Эксель.ActiveWindow.TabRatio = 0.6; Первый = ложь; Иначе ТекКнига.Close(); КонецЕсли; КонецЦикла; //Удаляем, чтобы не переспрашивал Файл = Новый Файл(ИмяФайла); Если Файл.Существует() Тогда УдалитьФайлы(ИмяФайла); КонецЕсли; Книга.SaveAs(ИмяФайла, -4143); //xlWorkbookNormal -4143 Workbook normal Книга.Close(); КонецПроцедуры |
| Форум | Правила | Описание | Секции | Поиск |