Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2012.03.04;
Скачать: [xml.tar.bz2];

Вниз

Запись в таблицу OpenOffice   Найти похожие ветки 

 
O.O   (2010-09-22 10:48) [0]

Возникла необходимость создавать из программы таблицу OpenOffice. Воспользовался рекомендациями
http://rsdn.ru/article/openoffice/ooautomation.xml


...
 public
   { Public declarations }
   StarOffice:  Variant;
   OO_Document: Variant;
   OO_Sheets:   Variant;
   OO_Sheet0:   Variant;
   OO_Sheet1:   Variant;
 end;
...

function TForm1.Connect: boolean;
begin
  if VarIsEmpty(StarOffice) then
     StarOffice := CreateOleObject("com.sun.star.ServiceManager");
  Result := not (VarIsEmpty(StarOffice) or VarIsNull(StarOffice));
end;

function TForm1.CreateDocument: boolean;
var
  StarDesktop: Variant;
begin
  StarDesktop := StarOffice.createInstance("com.sun.star.frame.Desktop");
  OO_Document := StarDesktop.LoadComponentFromURL(
                 "private:factory/scalc", "_blank", 0,
                 VarArrayCreate([0, -1], varVariant));
  Result := not (VarIsEmpty(OO_Document) or VarIsNull(OO_Document));
end;


создаю новую таблицу:


procedure TForm1.btnCreateClick(Sender: TObject);
begin
if Connect then begin
  if CreateDocument then begin
    OO_Sheets := OO_Document.OleFunction("getSheets");



вышестоящая строчка выдаёт ошибку "Metod "OleFunction" not supported by automation object"
дальнейший код естественно не выполняется, при этом сама пустая таблица открывается.


    OO_Sheet0 := OO_Sheets.OleFunction("getByIndex", 0);
    OO_Sheet1 := OO_Sheets.OleFunction("getByIndex", 1);
  end else begin
    ....
  end;
end else begin
  ...
end;


Собственно вопрос:
в примере использовалась версия OpenOffice.org 1.1.2, я использую последнюю версию OpenOffice.org 3.2.1

В новой версии OO присутствует иной метод для доступа к ячейкам таблицы или я где-то ошибаюсь ?


 
Плохиш ©   (2010-09-22 10:57) [1]


> Возникла необходимость создавать из программы таблицу OpenOffice.
>  Воспользовался рекомендациями
> http://rsdn.ru/article/openoffice/ooautomation.xml
>
>

там имеется ссылка на sdk, где можно найти и скачать sdk для нового опенофиса.


 
O.O   (2010-09-22 12:24) [2]

По ссылке ничего не нашёл. Попробовал методом "ТЫКА", получилось :)

Вместо

 OO_Sheets := OO_Document.OleFunction("getSheets");
 OO_Sheet0 := OO_Sheets.OleFunction("getByIndex", 0);
 OO_Sheet1 := OO_Sheets.OleFunction("getByIndex", 1);

написал

 OO_Sheets := OO_Document.GetSheets;
 OO_Sheet0 := OO_Sheets.GetByIndex(0);
 OO_Sheet1 := OO_Sheets.GetByIndex(1);


А с методом
Cell = Sheet.OleFunction("getCellByName","A1");
фокус с заменой на
Cell = Sheet.GetCellByName("A1");
не проходит, хотя конструкция
Cell = Sheet.GetCellByPosition(0, 0);
работает.


 
O.O   (2010-09-22 12:53) [3]

и GetCellRangeByName тоже не работает :(

Бум искать


 
O.O   (2010-09-22 13:11) [4]

А здесь написано что вроде как должно быть:
http://api.openoffice.org/docs/common/ref/com/sun/star/table/XCellRange.html


 
O.O   (2010-10-21 06:06) [5]

Ответы на все вопросы по поводу работы с OpenOffice нашлись здесь:

http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=405083&pg=1&hl=variant+not+reference+automation+object



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2012.03.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
15-1321389003
Юрий
2011-11-16 00:30
2012.03.04
С днем рождения ! 16 ноября 2011 среда


2-1322144208
Елена
2011-11-24 18:16
2012.03.04
TPageScroller


15-1321301277
alexdn
2011-11-15 00:07
2012.03.04
делфи и мак ос


2-1322133672
1234567890
2011-11-24 15:21
2012.03.04
проверить пуст ли датасет


1-1287596219
MAcKZloy
2010-10-20 21:36
2012.03.04
XmlDocument и теги





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский