Попытка Excel = Новый COMОбъект("Excel.Application"); Исключение Сообщить("ВНИМАНИЕ! TOpenOffice не установлен или недостаточно прав доступа! | - " + ОписаниеОшибки(), СтатусСообщения.ОченьВажное); Возврат; КонецПопытки; ТабДокумент = ПечатьЦенника(ВидЦенника); ИмяФайла = ПутьДляСохранения+"\"+ТабДокумент.ИспользуемоеИмяФайла+".xls"; ТабДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS97); МакетОформления = Неопределено; // Откроем табличный документ Excel.Workbooks.Open(ИмяФайла); КнигаExcel = Excel.Workbooks.Item(Excel.Workbooks.Count); ЛистExcel = КнигаExcel.WorkSheets.Item(1); КнигаExcel.Activate(); ЛистExcel.Activate(); //Установка полей //Значение - points. Придется делать пересчет (100 points = 3.8 inches) ЛистExcel.PageSetup.LeftMargin = 28; ЛистExcel.PageSetup.RightMargin = 28; ЛистExcel.PageSetup.TopMargin = 25; ЛистExcel.PageSetup.BottomMargin = 25; //Установка ориентации Если ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт Тогда ЛистExcel.PageSetup.Orientation = 2; Иначе ЛистExcel.PageSetup.Orientation = 1; КонецЕсли; //Установка масштаба печати ЛистExcel.PageSetup.Zoom = ТабДокумент.МасштабПечати; //Сохранение в Мои документы КнигаExcel.Save(); //Покажем книгу на экран Excel.Visible = 1; //Отключаем COM - соединение Excel.Quit();
Попытка СервисМанагер = Новый COMОбъект("Com.Sun.Star.ServiceManager"); Исключение Сообщить("Не могу создать объект Open Office! | - " + ОписаниеОшибки(), СтатусСообщения.ОченьВажное); Возврат; КонецПопытки; ТабДокумент = ПечатьЦенника(ВидЦенника); ИмяФайла = ПутьДляСохранения+"\"+ТабДокумент.ИспользуемоеИмяФайла+".xls"; ТабДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS97); МакетОформления = Неопределено; // Откроем табличный документ Скрипт = новый COMОбъект("MSScriptControl.ScriptControl"); Скрипт.language = "javascript"; Скрипт.eval("Massiv=new Array()"); Массив = Скрипт.eval("Massiv"); Скрипт.AddObject("СервисМанагер",СервисМанагер); Скрипт.eval("Massiv[0]=СервисМанагер.Bridge_GetStruct('com.sun.star.beans.PropertyValue')"); Скрипт.eval("Massiv[0].Name='Hidden'"); Скрипт.eval("Massiv[0].Value=true"); Стол = СервисМанагер.createInstance("com.sun.star.frame.Desktop"); ВремПуть = СтрЗаменить(ПутьДляСохранения, "\", "/"); ВремПуть = СтрЗаменить(ВремПуть, " ", "%20"); УРЛ = "file:///"+ВремПуть+"/"+ТабДокумент.ИспользуемоеИмяФайла+".xls"; Документ = Стол.LoadComponentFromURL(УРЛ,"_blank",0,Массив); Документ.lockControllers(); Документ.addActionLock(); Листы=Документ.getSheets(); ЛистДанные=Листы.getByIndex(0); СтилиСтраницы=Документ.StyleFamilies.getByName("PageStyles"); ПараметрыСтраницы=СтилиСтраницы.getByName(ЛистДанные.PageStyle); //Установка полей ПараметрыСтраницы.LeftMargin = ТабДокумент.ПолеСлева * 100; ПараметрыСтраницы.RightMargin = ТабДокумент.ПолеСправа * 100; ПараметрыСтраницы.TopMargin = ТабДокумент.ПолеСверху * 100; ПараметрыСтраницы.BottomMargin = ТабДокумент.ПолеСнизу * 100; //Установка ориентации Если ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт Тогда ПараметрыСтраницы.IsLandscape = Истина; ПараметрыСтраницы.Width = 29700; ПараметрыСтраницы.Height = 21000; Иначе ПараметрыСтраницы.IsLandscape = Ложь; ПараметрыСтраницы.Width = 21000; ПараметрыСтраницы.Height = 29700; КонецЕсли; //Установка масштаба печати ПараметрыСтраницы.PageScale = ТабДокумент.МасштабПечати; //Сохранение документа Документ.unlockControllers(); Документ.removeActionLock(); Документ.store(); Документ.Close(Истина); //Отключаем COM - соединение Стол.terminate();