К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Загрузка OpenOffice

Гость
0 - 13.03.2014 - 08:59
Добрый день,
для загрузки из XLS используется общепринятая конструкция
Код:
	ServiceManager=СоздатьОбъект("com.sun.star.ServiceManager");
	scr.AddObject("ServiceManager",ServiceManager);
	Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
	Document = Desktop.LoadComponentFromURL("file:///"+Файл, "_blank", 0, Массив);
При этом программное приложение Оо открывается в видимом режиме. Возможен ли запуск в скрытом режиме (условие запускать под другим пользователем пока не рассматриваем)



1 - 13.03.2014 - 09:29
http://www.sql.ru/forum/1047728/sozd...-visible-false
другие инструменты для чтения xls не пробовали?
Гость
2 - 13.03.2014 - 10:21
Неужто в гугле забанили ....
Первая ссылка по словам loadcomponentfromurl hidden
Гость
3 - 13.03.2014 - 10:58
(0) Не хочу обидеть............одни вопли слюни,подари мне дворники для монитора(а то забанят)
недавно писал
Гость
4 - 13.03.2014 - 11:02
+3 открой букварь(http://help1c.com/faq8.html)
модераторов прошу не ругаться,это не реклама
Гость
5 - 14.03.2014 - 09:50
Используя COM - невозможно загрузить OpenOffice/LibreOffice в скрытом режиме. Это возможно только при использовании [*****]-->[*****]-->[*****]. В целом возможностей при работе через COM примерно на 30% меньше, чем через [*****]-->[*****]-->[*****].

В LibreOffce 4.2 анонсирована новое API, как замена труднопонятного [*****]-->[*****]-->[*****] и недофункционального COM. Еще не тестил.
Гость
6 - 14.03.2014 - 10:02
5-economist > я вот тоже пифка купил часиков в 8-00, оказалось и это фикня, в сравнении с твоими советами
Гость
7 - 14.03.2014 - 10:02
Кхм, под [*****]-->[*****]-->[*****] скрывается
невинное слово U N O (универсальный сетевой объект, УНО)
Гость
8 - 14.03.2014 - 10:07
(7) талбаеп?
ЗЫ ты наш человек
Гость
9 - 14.03.2014 - 10:11
8 - Предсказуемо...
Гость
10 - 14.03.2014 - 10:18
9-economist > не завидуй. пивка взял, рыбка есть - чего и всем оставшимся чесслово желаю
Гость
11 - 14.03.2014 - 23:04
пан директор == баран ?

При Создателе хоть не пиши свой бред.
Гость
12 - 14.03.2014 - 23:06
автор все давно украдено, код в сабже устарел лет на 10 примерно, говорю как Автор всех связок ООО и 1С.
Гость
13 - 14.03.2014 - 23:10
разбирайся с древней болванкой (не важно, то таблицы)

//*******************************************
Функция ПолучитьОбертку()
ХТМЛ = СоздатьОбъект("htmlfile");
ХТМЛ.Open("text/html");
//<-- Подготовим нужные методы
ХТМЛ.Write("<script>
|var ХТМЛ;
|ПолучитьЗначение=function(x,y){return x.constructor == Array ? x[y] : x**;
|УстановитьЗначение=function(x,y,z){x[y]=z**;
|РазмерМассива=function(x){return x.length**;
|УстановитьБулево=function(x){x.Value=Boolean(x.Va lue)**;
|Массив=function(x){return new Array(x)**;
|</script>");
Док=ХТМЛ.documentElement.document;
// Внедрение объекта Скрипта в самого себя, для сохранности контекста
Док.script.ХТМЛ=ХТМЛ;
// Все подготовке -->
Возврат Док.script;
КонецФункции // ПолучитьОбертку(Это)

Функция Цвет(Красный=0,Зеленый=0,Синий=0)
Возврат (Красный*65536)+(Зеленый*256)+Синий;
КонецФункции // Цвет(Красный=0,Зеленый=0,Синий=0)

Функция ОпенОфис(Файл="")
Это=ПолучитьОбертку();
//УРЛ="file:///"+Это.encodeURI(СтрЗаменить(Файл,"\","/"));
СервисМанагер=СоздатьОбъект("com.sun.star.ServiceM anager");
Обновлялка=СервисМанагер.createInstance("com.sun.s tar.reflection.CoreReflection");
Проводник=СервисМанагер.createInstance("com.sun.st ar.ucb.FileContentProvider");
УРЛ=Проводник.getFileURLFromSystemPath("",Файл);
Сообщить(УРЛ);
Массив=Это.Массив(0);
Параметр=Это.Массив(0);
Для Сч=0 По 1 Цикл
Обновлялка.forName("com.sun.star.beans.PropertyVal ue").createObject(Параметр);
Это.УстановитьЗначение(Массив,Сч,Это.ПолучитьЗначе ние(Параметр,0));
КонецЦикла;

Параметр=Это.ПолучитьЗначение(Массив,0);
Параметр.Name="Hidden";
Параметр.Value=0;//Если 0 или любое пустое значение то Ложь, иначе Истина
Это.УстановитьБулево(Параметр);

Параметр=Это.ПолучитьЗначение(Массив,1);
Параметр.Name="Password";
Параметр.Value="123";

Для Сч=0 По Это.РазмерМассива(Массив)-1 Цикл
Сообщить(Это.ПолучитьЗначение(Массив,Сч).Name);
Сообщить(Это.ПолучитьЗначение(Массив,Сч).Value);
КонецЦикла;

Десктоп = СервисМанагер.createInstance("com.sun.star.frame.D esktop");
//Док = Десктоп.LoadComponentFromURL("private:factory/scalc", "_blank", 0, Массив );
Док = Десктоп.LoadComponentFromURL(УРЛ, "_blank", 0, Массив );
ИмяЗакладки="Закладка1";
Текст=Док.getText();
Контроллер=Док.CurrentController;
Курсор=Контроллер.getViewCursor();
Закладки=Док.getBookmarks();
Попытка
Закладка=Закладки.getByName(ИмяЗакладки);
Исключение
Сообщить("Фигня какая то с закладкой """+ИмяЗакладки+"""!!!");
Возврат(1);
КонецПопытки;
Якорь=Закладка.getAnchor();
Курсор.gotoRange(Якорь, 0);

//Курсор.CharColor=Цвет(255,0,0);
//Курсор.CharBackColor=Цвет(0,255,0);
//Курсор.CharFontName="Times New Roman";
//Курсор.CharHeight=48;

ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Товар");
ТЗ.НоваяКолонка("Количество");
ТЗ.НоваяКолонка("Цена");
ТЗ.НоваяКолонка("Сумма");
ТЗ.НоваяСтрока();
ТЗ.Товар = "Носки";
ТЗ.Количество = 1;
ТЗ.Цена = 20;
ТЗ.Сумма = ТЗ.Цена * ТЗ.Количество;
ТЗ.НоваяСтрока();
ТЗ.Товар = "Трусы";
ТЗ.Количество = 1;
ТЗ.Цена = 100;
ТЗ.Сумма = ТЗ.Цена * ТЗ.Количество;
ТЗ.НоваяСтрока();
ТЗ.Товар = "Броник";
ТЗ.Количество = 1;
ТЗ.Цена = 200;
ТЗ.Сумма = ТЗ.Цена * ТЗ.Количество;
//ТаблицаООО=Док.createInstance("com.sun.star.text.T extTable");
//ТаблицаООО.initialize(ТЗ.КоличествоСтрок()+1,ТЗ.Ко личествоКолонок());
////Текст.insertString(Курсор, "Тут была закладка """+ИмяЗакладки+"""", 0 );
//Текст.insertTextContent(Курсор,ТаблицаООО,0);
//Для Кол=1 По ТЗ.КоличествоКолонок() Цикл
// Ячейка=ТаблицаООО.getCellByPosition(Кол-1,0);
// Ячейка.getText().setString(""+ТЗ.ПолучитьПараметры Колонки(Кол));
//КонецЦикла;
Стр="";
Для Сч=1 По ТЗ.КоличествоСтрок() Цикл
Для Кол=1 По ТЗ.КоличествоКолонок() Цикл
//Ячейка=ТаблицаООО.getCellByPosition(Кол-1,Сч);
//Ячейка.getText().setString(""+ТЗ.ПолучитьЗначение( Сч,Кол));
Стр=Стр+""+ТЗ.ПолучитьЗначение(Сч,Кол)+Симв(9);
//Курсор.setString(""+ТЗ.ПолучитьЗначение(Сч,Кол)+Си мв(9));
//Курсор.gotoEnd(0);
КонецЦикла;
Стр=Стр+Симв(10);
//Курсор.getText().insertControlCharacter(Курсор.End ,0,0);
КонецЦикла;
Якорь.setString(Стр);
Возврат 0;
//Сообщить(Текст.getString(Якорь.getStart(),Якорь.ge tEnd()));
Перейти ~М1;
Листы=Док.getSheets();
Лист=Листы.getByIndex(0);
Курсор=Лист.createCursor();
Курсор.gotoStartOfUsedArea(0);
Курсор.gotoEndOfUsedArea(-1);
Адреса=Курсор.getRangeAddress();
Диапазон=Лист.getCellRangeByPosition(Адреса.StartC olumn,Адреса.StartRow,Адреса.EndColumn,Адреса.EndR ow);
Поиск=Диапазон.createSearchDescriptor();
Поиск.SearchRegularExpression = -1;
Поиск.SearchString = ".+";
Рез=Диапазон.findAll(Поиск);
Всего=Рез.getCount();
Начало=Рез.getByIndex(0).getRangeAddress();
Конец=Рез.getByIndex(Всего-1).getRangeAddress();
ДиапазонДанных=Диапазон.getSpreadsheet().getCellRa ngeByPosition(Начало.StartColumn, Начало.StartRow,Конец.EndColumn,Конец.EndRow);
Для С=1 По ДиапазонДанных.getRows().getCount() Цикл
Стр="";
Для К=1 По ДиапазонДанных.getColumns().getCount() Цикл
Стр=Стр+"; "+ДиапазонДанных.getCellByPosition(К-1,С-1).getText().String();
КонецЦикла;
Сообщить(Стр);
КонецЦикла;
~М1:
Массив=Это.Массив(0);
Обновлялка.forName("com.sun.star.beans.PropertyVal ue").createObject(Параметр);
Это.УстановитьЗначение(Массив,0,Это.ПолучитьЗначен ие(Параметр,0));

Параметр.Name="Wait";
Параметр.Value=-1;//Если 0 или любое пустое значение то Ложь, иначе Истина
Это.УстановитьБулево(Параметр);
Для Сч=0 По Это.РазмерМассива(Массив)-1 Цикл
Сообщить(Это.ПолучитьЗначение(Массив,Сч).Name);
Сообщить(Это.ПолучитьЗначение(Массив,Сч).Value);
КонецЦикла;
Док.Print(Массив);
//Предупреждение("Печать ?");
//Док.Close(-1);
//Десктоп.Terminate();
КонецФункции

//*******************************************
Процедура Сформировать()
Перем Имя,Путь;
Если ФС.ВыбратьФайл(0,Имя,Путь,"","Файлы офиса|*.ods;*.xls;*.odt;*.doc","*")=0 Тогда
Возврат;
КонецЕсли;
ОпенОфис(Путь+Имя);
КонецПроцедуры

//


К списку вопросов






Copyright ©, Все права защищены