![]() |
|
Как сохранить несколько разных листов в одной книге .xls программно из 1С? | ☑ | ||
---|---|---|---|---|
0
vechiy
17.10.12
✎
11:45
|
Встала вот такая задача. Вроде все описано в сабже.
Кто знает как давать имена листам в сохраняемом эксель-файле и добавлять новые листы? |
|||
1
Heckfy
17.10.12
✎
11:48
|
||||
2
vechiy
17.10.12
✎
16:24
|
спасибо)
ещё нужно программно сохранить макет печатной формы в .xls, после заполнения и вывода самого макета |
|||
3
vechiy
17.10.12
✎
16:27
|
это вроде нашел)
ТабДок.сохранить(йцу,xls) но если у меня выводится 2 или более макетов, и все их нужно сохранить в одну книгу, на разные листы? |
|||
4
vechiy
17.10.12
✎
17:29
|
и рраз
|
|||
5
Asmody
17.10.12
✎
17:46
|
Перем ТаблицыОтчетов;
Процедура ПоказатьТаблицу(ТабДок, Менеджер) Экспорт Если ТаблицыОтчетов.Количество()=0 Тогда ТекущаяСтраница=ЭлементыФормы.Панель1.Страницы[0]; Иначе ТекущаяСтраница=ЭлементыФормы.Панель1.Страницы.Добавить(); ЭлементыФормы.Панель1.ТекущаяСтраница = ТекущаяСтраница; КонецЕсли; ТекущаяСтраница.Заголовок=Менеджер; ТекущаяСтраница.Значение=Менеджер; ИмяПоляТабДока = "ПолеТабличногоДокумента"+ТекущаяСтраница.Имя; ПолеТабДока = ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"), ИмяПоляТабДока, Истина, ЭлементыФормы.Панель1); ПолеТабДока.Верх = 6; ПолеТабДока.Лево = 6; ПолеТабДока.Ширина = ЭлементыФормы.Панель1.Ширина - 14; ПолеТабДока.Высота = ЭлементыФормы.Панель1.Высота - 30; ПолеТабДока.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Право); ПолеТабДока.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Низ); ПолеТабДока.Вывести(ТабДок); ТаблицыОтчетов.Вставить(Менеджер, ТабДок); КонецПроцедуры Процедура ДействияФормыСохранитьВКнигу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=СокрЛП(Менеджер.Наименование); tempBook.Sheets(1).Copy(delSheet); tempBook.Close(0); УдалитьФайлы(ИмяФайла); //Сообщить("Записан "+Каталог+ИмяФайла); КонецЦикла; Попытка delSheet.Delete(); Исключение КонецПопытки; book.SaveAs(ДиалогВыбораФайла.ПолноеИмяФайла,-4143); xlsApp.DisplayAlerts = 1; xlsApp.Workbooks.Close(); xlsApp.Quit(); //ЗапуститьПриложение( ДиалогВыбораФайла.ПолноеИмяФайла ); КонецЕсли; КонецПроцедуры ТаблицыОтчетов = Новый Соответствие; |
|||
6
vechiy
17.10.12
✎
18:20
|
это, я так понимаю, собственно, создание(копирование) листа?
tempBook.Sheets(1).Copy(delSheet); |
|||
7
vechiy
01.11.12
✎
10:21
|
блеать не получается так. нельзя просто взять сохранить табдок в нужный лист книги?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |