Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбить ячейки в таблице (OpenOffice.Writer) 
:(
    Опции темы
Hang
Дата 15.12.2009, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 16.12.2007
Где: Вологда

Репутация: нет
Всего: 3



Добрый день!

Ребята, прошу помощи. Нужно разбить ячейки таблицы в OpenOffice.Writer. Сколько уже в инете искал, ничего не могу подходящего найти. (Или может кто-нибудь знает как объединить ячейки, тоже информация будет полезна!)

ПО: OpenOffice.org 3.1

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  ServiceManager, Desktop : Variant;
  CoreReflection, PropertyValue, VA: Variant;
  Document: Variant;
  Table: Variant;
  objText, objCursor : Variant;
begin
  ServiceManager := CreateOleObject('com.sun.star.ServiceManager');
  CoreReflection := ServiceManager.createInstance('com.sun.star.reflection.CoreReflection');
  CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(PropertyValue);
  VA := VarArrayCreate([0, 0], varVariant);
  VA[0] := PropertyValue;

  Desktop := ServiceManager.createInstance('com.sun.star.frame.Desktop');
  Document := Desktop.LoadComponentFromURL('private:factory/swriter','_blank', 0,  VA);
  objText := Document.getText;
  //Create a cursor object
  objCursor := objText.createTextCursor;

  //Inserting some Table
  Table := Document.createInstance('com.sun.star.text.TextTable');
  Table.initialize(5, 4);  //row, column

  Document.getText.insertTextContent( objCursor, Table, false );

  //... ТУТ НАДО РАЗБИТЬ ЯЧЕЙКУ, НАПРИМЕР ЯЧЕЙКУ(1,1) НА 2 СТРОКИ
end;


PM ICQ   Вверх
Hang
Дата 15.12.2009, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 16.12.2007
Где: Вологда

Репутация: нет
Всего: 3



Не знаю даже где еще глянуть. Уже весь OpenOffice.org Basic Guide проштудировал
PM ICQ   Вверх
Regulum
Дата 19.12.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 16.6.2009

Репутация: 1
Всего: 1



C помощью Dispatcher'a будет как-то так (точно не могу сказать, пишу по памяти, даже проверить в данный момент негде)

Код

var oDispatcher,oArgs:variant;
    CoreReflection,propertyValue0,propertyValue1,propertyValue2:variant;
    oFrame:variant;
begin

  oDispatcher:=StarOffice.createInstance('com.sun.star.frame.DispatchHelper');
  CoreReflection:=StarOffice.createInstance('com.sun.star.reflection.CoreReflection');
  CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(propertyValue0);
  CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(propertyValue1);
  CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(propertyValue2);
  oArgs:=VarArrayCreate([0,2],varVariant);
  propertyValue0.Name:='Amount';
  propertyValue0.Value:=2; //здесь указываем требуемое количество ячеек
  oArgs[0]:=propertyValue0;
  propertyValue1.Name:='Horizontal';
  propertyValue1.Value:=false;
  oArgs[1]:=propertyValue1;
  propertyValue2.Name:='Proportional';
  propertyValue2.Value:=false;
  oArgs[2]:=propertyValue2;
  oFrame:=Document.getCurrentController.getFrame;
  oDispatcher.executeDispatch(oFrame,'.uno:SplitCell','',0,oArgs);

end;


можно ещё поиграться с параметрами Horizontal и Proportional

и ещё, в ячейке должен находиться курсор (Кажется тот, который видимый (ViewCursor). У меня по крайней мере что-то в таком духе работало)
PM MAIL   Вверх
Hang
Дата 19.12.2009, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 16.12.2007
Где: Вологда

Репутация: нет
Всего: 3



Regulum, я пробовал так сделать у меня не получилось. Может плохо пробовал. В строке 22 (твоего кода) вместо oFrame я использовал Document (значение переменной в моем коде). Я записывал Макрос, а потом на основе сформированного кода в макросе переносил его в Дельфи. Завтра попробую еще раз!
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.