====== Excel: Сохранение нескольких табличных документов в книгу Excel ======
Иногда требуется сохранить несколько отчетов в книгу Excel. Приведенная процедура рещает эту задачу.
Процедура СохранитьВКнигу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();
//ЗапуститьПриложение( ДиалогВыбораФайла.ПолноеИмяФайла );
КонецЕсли;
КонецПроцедуры
{{tag>ТабличныйДокумент Excel}}