Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi OpenDocument mit Delphi verarbeiten (https://www.delphipraxis.net/50742-opendocument-mit-delphi-verarbeiten.html)

benst 30. Jul 2005 21:22


OpenDocument mit Delphi verarbeiten
 
Hallo zusammen,
kann mir jemand sagen, ob es schon Informationen oder Projekte zur Verarbeitung von "OpenDocument"-Dokumenten (neuer Dateistandard de.wikipedia.org/wiki/OpenDocument) mit Delphi gibt?
Mir schwebt vor, eine OpenDocument-Tabelle in z.B. ein Stringgrid zu laden.
Des weiteren, gibt es schon eine ungefähr Zeitangabe, wie lange OpenOffice 2 noch in der Beta-Phase ist?
Vielen Dank für jede Antwort und Hilfe. :bounce2:
Gruß
Ben
P.S.: Delphi 5 Standard, Win XP

aliB 16. Aug 2005 12:25

Re: OpenDocument mit Delphi verarbeiten
 
So weit ich weiß, ist das OpenDocument-Dokument eine gezipte Datei die alles enthält was das Dokument verwendet.
(Styles, Bilder, ... und natürlich den Inhalt selber)
Die Datei die den Text bereitstellt nennt sich content.xml.
Theoretisch müste man also nur die odt Datei entpacken und die darin enthaltene content.xml auslesen.
Habs aber noch nie getestet da ich noch kein Programm habe welches ein OpenDocument erzeugen kann.
Das Thema interessiert mich auch brennend :)

benst 16. Aug 2005 14:44

Re: OpenDocument mit Delphi verarbeiten
 
Ja, so weit war ich auch schon. In der content.xml konnte ich auch meine Inhalte finden. Doch habe ich noch nie etwas mit XML gemacht und ich dachte vielleicht, dass es schon einige andere Projekte dafür gibt.
Gruß Ben
P.S.: Falls es noch nichts für Delphi geben sollte, so würden mich auch Projekte mit C interessieren.

aliB 17. Aug 2005 08:08

Re: OpenDocument mit Delphi verarbeiten
 
Also unter Delphi gibt es sogar eine vorgefertigte Komponente!
TXMLDocument findest du in der Rubrick Internet
Versuch erstmal eine einfache xml Datei zu öffnen, Attribute lesen / löschen / hinzufügen,
solltest du dann nicht weiter kommen, kannst du ja die Fragen hier stellen :)
Ansonsten findest du hier ein gutes Tutorial.

Thanatos81 17. Aug 2005 08:22

Re: OpenDocument mit Delphi verarbeiten
 
Zitat:

Zitat von Mithrandir
Habs aber noch nie getestet da ich noch kein Programm habe welches ein OpenDocument erzeugen kann.
Das Thema interessiert mich auch brennend :)

Dann besorg dir einfach die Beta von OpenOffice.org 2, oder falls du das nicht möchtest sag Bescheid, dann schick ich dir ein OpenDocument aus eben jener Office-Suite.

aliB 17. Aug 2005 08:39

Re: OpenDocument mit Delphi verarbeiten
 
Zitat:

Dann besorg dir einfach die Beta von OpenOffice.org 2
das ist der Punkt, beta mag i net und OpenOffice 1.1.5 ist noch nich raus.

Zitat:

oder falls du das nicht möchtest sag Bescheid, dann schick ich dir ein OpenDocument aus eben jener Office-Suite.
Bescheid :)

Thanatos81 17. Aug 2005 08:42

Re: OpenDocument mit Delphi verarbeiten
 
Liste der Anhänge anzeigen (Anzahl: 1)
OK, schickste mir ne PM mit deiner E-Mail-Addy?

//Edit
Ach ja, man hier ja auch was anhängen :oops: Habs mal gezippt, da ich .odt nicht in der Liste der erlaubten Dateierweiterungen gefunden habe.

aliB 17. Aug 2005 09:08

Re: OpenDocument mit Delphi verarbeiten
 
Besten Dank, werd's gleich ausprobieren.

Thanatos81 17. Aug 2005 09:18

Re: OpenDocument mit Delphi verarbeiten
 
Keine Ursache, Gandalf :-D . Hab verschiedene Formatierungen und Schriften sowie ein Bild mit eingebaut, damit so richtig testen kannst :wink:

aliB 17. Aug 2005 11:17

Re: OpenDocument mit Delphi verarbeiten
 
So, hab jetzt doch OpenOffice installiert, brauchte noch ein Tabellendokument.

@benst
Hier mal ein Beispielcode der den gesamten Datenteil des OD iteriert und die NodeCaption anzeigt.
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xmldom, XMLIntf, StdCtrls, msxmldom, XMLDoc;

type
  TODTestForm = class(TForm)
    XMLDocument1: TXMLDocument;
    btnIterateXML: TButton;
    procedure btnIterateXMLClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    function IterateXMLNode(AXMLNode: IXMLNode): string;
  end;

function TODTestForm.IterateXMLNode(AXMLNode: IXMLNode): string;
begin
  ShowMessage(AXMLNode.NodeName);
  if AXMLNode.HasChildNodes then IterateXMLNode(AXMLNode.ChildNodes.First);
  if AXMLNode.NextSibling <> nil then IterateXMLNOde(AXmlNode.NextSibling);
end;

procedure TODTestForm.btnIterateXMLClick(Sender: TObject);
var
  rootNode: IXMLNode;
  childNode: IXMLNode;
begin
  rootNode := XMLDocument1.DocumentElement;
  childNode := rootNode.ChildNodes.FindNode('office:body'); // wir wollen uns nur den Datenteil anschauen
  // der Datenteil eines Tabellendokuments enthält !alle! Tabellen und deren Werte
  // rekursive Methode!
  IterateXMLNode(childNode);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz