Excel: Сохранение нескольких табличных документов в книгу Excel
Иногда требуется сохранить несколько отчетов в книгу Excel. Приведенная процедура рещает эту задачу.
- СохранениеТабличныхДокументовВКнигуExcel.txt
Процедура СохранитьВКнигуExcel(МассивТабличныхДокументов) Если МассивТабличныхДокументов.Количество()>0 Тогда ДиалогВыбораФайла=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ДиалогВыбораФайла.ПолноеИмяФайла = ""; ДиалогВыбораФайла.Фильтр="Файлы Microsoft Excel (*.xls)|*.xls|Все файлы (*.*)|*.*"; ДиалогВыбораФайла.МножественныйВыбор=Ложь; ДиалогВыбораФайла.ПроверятьСуществованиеФайла=Истина; Если Не ДиалогВыбораФайла.Выбрать() Тогда Возврат; КонецЕсли; Попытка xlsApp=ПолучитьCOMОбъект("","Excel.Application"); Исключение Предупреждение("Ошибка при получении объекта Excel. Возможно не установлен Microsoft Office.",15); Возврат; КонецПопытки; xlsApp.SheetsInNewWorkbook = 1; xlsApp.DisplayAlerts = 0; book = xlsApp.Workbooks.Add(); delSheet = book.Sheets(1); СчетчикЛистов = 1; Для Каждого ТабДок из МассивТабличныхДокументов Цикл ИмяФайла=ПолучитьИмяВременногоФайла("xls"); ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS); tempBook=xlsApp.Workbooks.Open(ИмяФайла); tempBook.Sheets(1).Name="Лист"+СчетчикЛистов; СчетчикЛистов=СчетчикЛистов+1; tempBook.Sheets(1).Copy(delSheet); tempBook.Close(0); УдалитьФайлы(ИмяФайла); КонецЦикла; Попытка delSheet.Delete(); Исключение КонецПопытки; book.SaveAs(ДиалогВыбораФайла.ПолноеИмяФайла,-4143); xlsApp.DisplayAlerts = 1; xlsApp.Workbooks.Close(); xlsApp.Quit(); //ЗапуститьПриложение( ДиалогВыбораФайла.ПолноеИмяФайла ); КонецЕсли; КонецПроцедуры