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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OpenOffice Writer, чтение данных с ячейки таблицы 
V
    Опции темы
marhatter
Дата 12.9.2011, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!
Есть каталог, в нем есть файлы - *.doc, *.rtf, *.odt. В этих файлах есть таблицы. Таблица содержит  5 столбцов (фамилия, имя, отчество, дата рождения, номер).
Так вот нужно считать данные с этих таблиц (с каждой ячейки). Подскажите как это сделать? Заранее спасибо.
 Вот до чего дошел
Код

function Connect: boolean;
begin
   if VarIsEmpty(StarOffice) then
      StarOffice := CreateOleObject('com.sun.star.ServiceManager');
   Result := not (VarIsEmpty(StarOffice) or VarIsNull(StarOffice));
end;
 
function MakePropertyValue(PropName, PropValue:string):variant;
var Struct: variant;
begin
    Struct := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
    Struct.Name := PropName;
    Struct.Value := PropValue;
    Result := Struct;
end;
 
function OpenDocument(const aFileUrl:string): boolean;
var
   StarDesktop: Variant;
   VariantArr: variant;
begin
   StarDesktop := StarOffice.CreateInstance('com.sun.star.frame.Desktop');
   VariantArr := VarArrayCreate([0, 1], varVariant);
   VariantArr[0] := MakePropertyValue('FilterName', 'HTML (StarWriter)');
   Document := StarDesktop.LoadComponentFromURL(aFileUrl, '_blank', 0, VariantArr);
   Result := not (VarIsEmpty(Document) or VarIsNull(Document));
end;
 
procedure CloseDoc;
begin
  Document.Close(True);
  Document:=Unassigned;
end;
 
procedure Disconnect;
begin
   StarOffice := Unassigned;
end;
 
procedure TfrmOOSample.OpenDocClick(Sender: TObject);
var sr   : TSearchRec;
    path : String;
begin
  if Connect then
  begin
    ShowMessage('Соеденено');
    path := GetCurrentDir() + '\files\';
    if FindFirst(path + '*.*', faArchive, sr ) = 0 then
    begin
      repeat
        if (sr.Name = '.') or (sr.Name = '..') then continue;
        if not OpenDocument('file:///'+AnsiReplaceText(path + sr.Name,'\','/')) then ShowMessage('Error')
        else
        begin
 
        end;
        CloseDoc;
      until FindNext(sr) <> 0;
      FindClose(sr);
    end;
  end;
  Disconnect;
end;

P.S.Нужно сделать с использованием OpenOffice 3.3.0 (переделываю с MS Office)

Это сообщение отредактировал(а) marhatter - 12.9.2011, 08:50
PM MAIL   Вверх
marhatter
Дата 12.9.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если кому интересно - решение вот тут - http://forum.sources.ru/index.php?showtopic=122036. Вопрос снят.

Это сообщение отредактировал(а) marhatter - 12.9.2011, 15:26
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1862 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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