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 Тогда Возврат; КонецЕсли; ОпенОфис(Путь+Имя); КонецПроцедуры // | |
| Интернет-форум Краснодарского края и Краснодара |