Главная страница
    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.004 c
1-1287517747
christoforov
2010-10-19 23:49
2012.03.04
Прозрачная картинка


2-1318082533
БезымянныйСтудент
2011-10-08 18:02
2012.03.04
Где в таком случае делать try?


15-1321409838
Sher
2011-11-16 06:17
2012.03.04
DBGrid to StringGrid


3-1271337869
Андрей Пл
2010-04-15 17:24
2012.03.04
компонент ComboBoх с отфильтрованным выпадающим списком


3-1272459836
mefodiy
2010-04-28 17:03
2012.03.04
Несоответствие между ADO и AnyDAC





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский