Форум: "Прочее";
Текущий архив: 2014.01.12;
Скачать: [xml.tar.bz2];
ВнизКоллеги, а у кого есть LibreOffice или OpenOffice Найти похожие ветки
← →
Ega23 © (2013-07-18 15:57) [0]с макросами?
Собственно, интересует следующее: выделить область и применить к ней полное обрамление, и внешнее и внутреннее.
А то уже второй день бьюсь - ничего не выходит.
← →
sniknik © (2013-07-18 16:20) [1]вроде записалось ...
REM ***** BASIC *****
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$4:$D$13"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(7) as new com.sun.star.beans.PropertyValue
args2(0).Name = "BorderOuter.LeftBorder"
args2(0).Value = Array(0,0,35,0)
args2(1).Name = "BorderOuter.LeftDistance"
args2(1).Value = 0
args2(2).Name = "BorderOuter.RightBorder"
args2(2).Value = Array(0,0,35,0)
args2(3).Name = "BorderOuter.RightDistance"
args2(3).Value = 0
args2(4).Name = "BorderOuter.TopBorder"
args2(4).Value = Array(0,0,35,0)
args2(5).Name = "BorderOuter.TopDistance"
args2(5).Value = 0
args2(6).Name = "BorderOuter.BottomBorder"
args2(6).Value = Array(0,0,35,0)
args2(7).Name = "BorderOuter.BottomDistance"
args2(7).Value = 0
dispatcher.executeDispatch(document, ".uno:BorderOuter", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(4) as new com.sun.star.beans.PropertyValue
args3(0).Name = "BorderInner.Horizontal"
args3(0).Value = Array(0,0,35,0)
args3(1).Name = "BorderInner.Vertical"
args3(1).Value = Array(0,0,35,0)
args3(2).Name = "BorderInner.Flags"
args3(2).Value = 3
args3(3).Name = "BorderInner.ValidFlags"
args3(3).Value = 127
args3(4).Name = "BorderInner.DefaultDistance"
args3(4).Value = 0
dispatcher.executeDispatch(document, ".uno:BorderInner", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$I$26"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:MacroDialog", "", 0, Array())
end sub
← →
Ega23 © (2013-07-18 16:32) [2]Коля, спасибо, сейчас попробую перевести.
← →
Ega23 © (2013-07-19 00:29) [3]В общем ерунда какая-то получается. Внешнее обрамление range отработало, внутреннее - тоже, но потом при закрытии документа валится какой-то пиндык с DispatchInvoke.
Чешу репу, разбираюсь дальше.
Блин, на такой простейшей вещи третий день бьюсь...
← →
Ega23 © (2013-07-19 13:21) [4]Так. Под OpenOffice, оказывается, всё прекрасно работает.
Коллеги, у кого есть чистый LibreOffice с поддержкой макросов? Сделайте доброе дело, запишите, а?
← →
Rouse_ © (2013-07-19 13:55) [5]Леж, тыб сам уже его на виртуалке чистой развернул, чем народ доставать :)
← →
Ega23 © (2013-07-19 14:27) [6]
> Леж, тыб сам уже его на виртуалке чистой развернул, чем
> народ доставать :)
Да у меня он и без виртуалки развёрнут. Фишка в макросах - он JRE требует. Ну скачал я это JRE, а что там куда дальше?
Тьфу, блин, вот вечно такие квесты с опенсорсом.
← →
sniknik © (2013-07-19 14:41) [7]> Фишка в макросах - он JRE требует.
у меня не требует, и скрипт вроде как на бейсике выдает...
требует только если явно ткнуть в "JavaScript" но там только в настройке выбрать установленный в винду... один из, у меня 2 (sun и еще что то).
тыкай в OpenOffice Basic.
> Тьфу, блин, вот вечно такие квесты с опенсорсом.
ну, не знаю, у меня все "гладко" прошло. не сложнее чем с ms excel.
может у тебя установка кривая/резанная?
← →
Ega23 © (2013-07-19 15:13) [8]Есть OpenOffice. Есть LibreOffice. На работе установлен Libre последней версии. Дома - open. С опеном нет проблем. С Libre - никак не получается сделать обрамление, два варианта кода (один через сервисы TableBorder и LineBorder, второй - через .uno, то что ты мне вчера дал), первый - просто не отрабатывает (выполняется, ошибок нет, но ничего не рисуется), второй - что-то с этим .uno не чисто, при попытке закрытия документа валится с крахом, так, что надо soffice из таскменеджера снимать.
Да, а макросы - никак. Пруф:
http://s21.postimg.org/jsyu0oezb/image.png
← →
sniknik © (2013-07-19 15:48) [9]а... LibreOffice у меня не стоит, даже не пробовал с ним. ндо будет поставить потестировать, может у меня та же проблема есть... (хотя клиенты не жаловались пока)
← →
sniknik © (2013-07-19 15:56) [10]вообще ошибка на скрине из-за не установленности ява машины (на работе может не ставил/и либре не поставил с собой вместе)... скачай файл - jre-7u25-windows-i586.exe установи, и после попробуй.
← →
Ega23 © (2013-07-19 17:37) [11]короче. Я не понял, что я сделал, вроде по коду вообще ничего не менял. Но почему-то всё взяло и заработало, как под Libre, так и под Open.
Сделал через сервисы TableBorder, с .uno так и не удалось.
← →
Eraser © (2013-07-21 16:04) [12]
> Ega23 ©
LibreOffice вообще в топку надо, это кривой форк open"а.
Да и open в топку надо, т.к. это кривая пародия на MS Office. для работы, в которой используется хотя бы немного сложное форматирование текста, лучше MS, не таких больших денег стоит, экономия времени.
← →
Inovet © (2013-07-21 16:13) [13]> [12] Eraser © (21.07.13 16:04)
> лучше MS, не таких больших денег стоит, экономия времени.
Я так понима, делается экспорт в разные форматы, что там у юзеров есть в наличии.
← →
Германн © (2013-07-21 23:41) [14]
> Я так понима, делается
Это всё турбоюзер на пару с Розычем накаркали. А Ёжке отдуваться пришлось. :)
← →
sniknik © (2013-07-22 08:11) [15]> а... LibreOffice у меня не стоит, даже не пробовал с ним. ндо будет поставить потестировать, может у меня та же проблема есть... (хотя клиенты не жаловались пока)
есть проблема... вываливает ошибку - com.sun.start.lang.IndexOutBoundsExeption: без описания, хотя нигде ничего подобного не вызываю, язык (lang) не меняю, шрифты не настраиваю...
клиенты похоже просто не используют, раз не жалуются, а может игнорируют... т.к. есть дублирующие (в html) отчеты, и выгрузки того же самого в csv/xml.
насколько он(LibreOffice) распространен вообще? ну по сравнению с OpenOffice, не с MS, есть ли смысл разбираться, исправлять?
← →
Ega23 © (2013-07-22 11:11) [16]Ну со слов одного довольно-таки упоротого линуксоида я понял, что сейчас Опер Офис, после покупки его Ораклом, "уже не тот" и прогрессивное общество в срочном порядке мигрирует на Либре. Правда я не удивлюсь, если окажется, что прогрессивная часть общества - это 3.5 анонимуса-красноглазика с Петровско-Разумовской.
Лично я пока ещё не понял, стОит ли действительно досконально разбираться в тонкостях, может этот отчёт - единственный был, который и там и там должОн работать. Если задача повторится - то уже придётся досконально разбираться и какой-то внятный фреймворк писать (отдельные лучи поноса разработчикам этих ваших либре-опен-офисов за CharFontName вместо FontName, CharHeight вместо FontSize, CharPosture вместо FontStyle + [fsItalic] и CharWeight вместо FontStyle + [fsBold], причём CharWeight указывается в процентах от обычного текста) .
← →
sniknik © (2013-07-22 11:54) [17]да, что-то странное, вроде мелочи но жизнь портят, и главное не понятно зачем...
нашел "свою" ошибку (пришлось удалить опен и поставить либре) вот на этой строке "ломается" - Document.GetSheets.RemoveByName(Document.GetSheets.GetByIndex(2).GetName);
ломается из-за мелочи... из-за того, что по умолчанию в Excel-Open создается документ с 3 "листами", а Libre с 1м... (потому, что он "тот" наверное), и получается удаление 3-го, не нужного мне листа валится с ошибкой, хотя и странной какой то (при чем здесь lang ?).
теперь, чтобы работало "под Libre" нужно не удалять лишний "листок" а добавлять не существующий (нужно 2)... а метода на добавление найти не могу ;(, и макрос-ы в Libre не записываются (ну, у меня нет пункта в меню).
у меня тоже просьба, запишите кто нибудь макрос на добавление листа плиз... :), а то очень уж не охота ставить опять Open записывать макрос, переставлять Libre для проверки... и так, подозреваю, несколько раз.
> упоротого линуксоида
+1, они похоже любят сложности, типа "стоя и в гамаке", и несут это "в массы".
← →
Ega23 © (2013-07-22 12:10) [18]Попробуй так
Document.GetSheets.InsertNewByName("bla-bla-lba", 0);
← →
sniknik © (2013-07-22 13:07) [19]> Попробуй так
Спасибо!!!
А то я уж сделал по макросу (нашёл машину с OO) -VArray:= VarArrayCreate([0, 1], varVariant);
VArray[0]:= ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
VArray[1]:= ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
try
VArray[0].Value:= "Name";
VArray[0].Name := "List2";
VArray[1].Value:= "Index";
VArray[1].Name := 1;
Dispatcher.executeDispatch(Frame, ".uno:Insert", "", 0, VArray)
finally
VArray[0]:= Unassigned;
VArray[1]:= Unassigned;
VArray := Unassigned;
end;
и "воткнулся" в следующую проблему... оно диалоговое окно выкидывает, куда вставить, до, после, с каким именем и какой файл в лист вкачать... а на кой оно мне в формируемом отчете? начал искать как закрываеть окно...
← →
sniknik © (2013-07-22 13:16) [20]ну все... теперь мы поддерживаем LibreOffice ! ;)) (может найдется свой "красноглазик" в период пока там еще что-нибудь не поменяют на "правильно, но не так как у "не тех"")
← →
Ega23 © (2013-07-22 13:25) [21]Ну это я исключительно с их сайта взял
http://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/XSpreadsheets.html
← →
Ega23 © (2013-07-22 13:26) [22]В смысле, с OpenOffice. А вот как поддерживает (и поддерживает ли вообще) Libre Office .Uno - сие есть загадка великая.
← →
sniknik © (2013-07-22 14:03) [23]> А вот как поддерживает (и поддерживает ли вообще) Libre Office .Uno - сие есть загадка великая.
поддерживает, проверил уже. и у меня кстати все на .uno, я по другому не нашел как ПивотТаблицу делать, ну когда делал этот отчет. хотя, ИМХО, замороченный метод.
> В смысле, с OpenOffice.
> Опер Офис, после покупки его Ораклом, "уже не тот"
:))) у него документация есть.
а на Libre я даже поиска не нашёл...
← →
Ega23 © (2013-07-22 15:52) [24]В общем, "это какой-то позор" (с)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2014.01.12;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.003 c