0
Double_Medved
14.05.14
✎
14:45
|
Добрый день! Подскажите пожалуйста, пара часов гугла не помогло. Печатаю из 1с-ки прямо в OpenOffice, и вроде бы уже почти все получилось, но вот как блин объединить ячейки?
ServiceManager = СоздатьОбъект("com.sun.star.ServiceManager");
Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
Scr = СоздатьОбъект("MSScriptControl.ScriptControl");
Scr.Language="javascript";
Scr.Eval("Args=new Array()");
Args = Scr.Eval("Args");
Scr.AddObject("ServiceManager", ServiceManager);
// Откроем шаблон
ТекстовыйПроцессор = Desktop.LoadComponentFromURL(ПреобразоватьВURL(ИмяФайла), "_blank", 0, Args);
Листы = ТекстовыйПроцессор.getSheets();
Лист = Листы.getByIndex(0);
Область = Лист.getCellRangeByPosition( 10, 10, 10, 10);
Область.Merge(1);
Вроде-бы это функция merge, но там вроде как merge(true) объединяет и merge(false) разъединяет. То есть булеан должно быть. Merge(1) и Merge(0) ни к чему не привели. Мне это нужно потому что там 2 разные таблицы подряд идут и там разный размер ячеек - то есть мне надо объединить ячейки столько раз, сколько есть в таблице.
Подскажите плиз, замучался
|
|
1
Double_Medved
14.05.14
✎
14:54
|
Ололо всем спасибо я понял - не правильно задавал область, и все. Например если нужно объединить первую и вторую ячейку в первой строке то надо делать так Лист.getCellRangeByPosition( 0, 0, 0, 1).Merge(1) 0,0 координаты первой ячейки и 0,1 координаты второй ячейки.
|
|
2
spectre1978
14.05.14
✎
14:55
|
getCellRangeByPosition( [in] long nLeft,
[in] long nTop,
[in] long nRight,
[in] long nBottom )
Если сопоставить это с
Область = Лист.getCellRangeByPosition( 10, 10, 10, 10);
то выходит, что вы берете диапазон размером в 1 ячейку.
И что ж там тогда объединять?
|
|