|
OpenOffice Writer как установить/снять обрамление ячеек таблицы.
|
|||
---|---|---|---|
#18+
Добрый день! Зашел в тупик при попытке установить обрамление ячеек таблицы во Врайтере. Макрос показал dim args2(12) as new com.sun.star.beans.PropertyValue args2(0).Name = "OuterBorder.LeftBorder" args2(0).Value = Array(0,0,0,0) args2(1).Name = "OuterBorder.LeftDistance" args2(1).Value = 97 args2(2).Name = "OuterBorder.RightBorder" args2(2).Value = Array(0,0,0,0) args2(3).Name = "OuterBorder.RightDistance" args2(3).Value = 97 args2(4).Name = "OuterBorder.TopBorder" args2(4).Value = Array(0,0,0,0) args2(5).Name = "OuterBorder.TopDistance" args2(5).Value = 97 args2(6).Name = "OuterBorder.BottomBorder" args2(6).Value = Array(0,0,0,0) args2(7).Name = "OuterBorder.BottomDistance" args2(7).Value = 97 args2(8).Name = "InnerBorder.Horizontal" args2(8).Value = Array(0,0,0,0) args2(9).Name = "InnerBorder.Vertical" args2(9).Value = Array(0,0,0,0) args2(10).Name = "InnerBorder.Flags" args2(10).Value = 0 args2(11).Name = "InnerBorder.ValidFlags" args2(11).Value = 127 args2(12).Name = "InnerBorder.DefaultDistance" args2(12).Value = 0 dispatcher.executeDispatch(document, ".uno:SetBorderStyle", "", 0, args2()) Это для снятия выделения. Тут вместо Array(0,0,0,0) можно подставлять 0 и все отлично работает. А вот для установки должно быть Array(0,0,2,0) для соответсвующей линии. Проблема в том, что Фокс не может загнать массив в ячейку массива. Решения пока не нашел. Может тут есть знатоки, которые подскажут. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2016, 09:19 |
|
OpenOffice Writer как установить/снять обрамление ячеек таблицы.
|
|||
---|---|---|---|
#18+
Думаю, что возможно без uno. Для Calca куча примеров в интернете. Например, несколько передланный для моих нужд пример из http://www.sql.ru/forum/159867/openoffice-org-kak-com-obekt?hl=openoffice прорисовывает только горизонтальные нижнюю и верхнюю линии. oServiceManager = CREATEOBJECT( "com.sun.star.ServiceManager") oDesktop = oServiceManager.createInstance("com.sun.star.frame.Desktop") COMARRAY(oDesktop,10) DIMENSION args1[1] args1[1] = oServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue") args1[1].Name="Hidden" args1[1].Value=.F. oDocument = oDesktop.LoadComponentFromURL("private:factory/scalc","_blank",0,@args1) oSheet = oDocument.getSheets().getByIndex(0) *tmp_cell=oSheet.getCellByPosition(2,2) && для одной ячейки tmp_cell=oSheet.getCellRangeByPosition(2,2, 4,6) && для группы ячеек oBorder = tmp_cell.Tableborder * Сначала устанавливаем все линии oBorderline = oBorder.TopLine oBorderline.outerlinewidth = 2 oBorderline.innerlinewidth = 0 oBorderline.linedistance = 0 oBorderline.color = RGB(0,0,0) oBorder.Topline = oBorderline oBorder.Bottomline = oBorderline oBorder.Leftline = oBorderline oBorder.Rightline = oBorderline oBorder.Horizontalline = oBorderline oBorder.Verticalline = oBorderLine oBorder.Distance = 100 tmp_cell.Tableborder = oBorder SUSPEND && убеждаемся, что они прорисовались * устанавливаем только верхнюю и нижнюю, остальные стираем oBorderline1 = oBorder.TopLine oBorderline1.outerlinewidth = 2 oBorderline1.innerlinewidth = 0 oBorderline1.linedistance = 0 oBorderline1.color = RGB(0,0,0) oBorderline2 = oBorder.TopLine oBorderline2.outerlinewidth = 0 oBorderline2.innerlinewidth = 0 oBorderline2.linedistance = 0 oBorderline2.color = RGB(0,0,0) oBorder.Topline = oBorderline1 oBorder.Bottomline = oBorderline1 oBorder.Leftline = oBorderline2 oBorder.Rightline = oBorderline2 oBorder.Horizontalline = oBorderline2 oBorder.Verticalline = oBorderLine2 oBorder.Distance = 100 tmp_cell.Tableborder = oBorder Тут все отлично работает. Должно работать и во врайтере, но не могу выйти на аналог tmp_cell. Нужно, чтобы работало для выделенных ячеек, а не ячеек по номерам. Подозреваю, что вначале нужно определить номера выделенных ячеек и их сюда подставить. Но у врайтера нет Sheet. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2016, 09:22 |
|
|
start [/forum/topic.php?fid=41&msg=39275392&tid=1582091]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 131ms |
0 / 0 |