![]() |
AW: xml file erstellen
Zitat:
Zitat:
![]() |
AW: xml file erstellen
alsooo
mit TXMLDocument habe ich jetzt eine Datei erzeugt. so
Delphi-Quellcode:
bekomme ich eine Zeile in das File:
pfad := 'C:\temp2\test2.xml';
Doc := TXMLDocument.Create; Doc.XMLVersion:= '1.0'; WriteXMLFile(Doc, pfad);
Delphi-Quellcode:
immerhin etwas ;-)
<?xml version="1.0" encoding="UTF-8"?>
aber wie bekomme ich meine Excelstruktur:
Delphi-Quellcode:
Die Beispiele die ich gefunden habe, erzeugen mir so was:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> <Author>ich</Author> <LastAuthor>ich</LastAuthor> <Created>2012-02-01T12:31:29Z</Created> <Version>15.00</Version> </DocumentProperties> <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> <AllowPNG /> </OfficeDocumentSettings> <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>12435</WindowHeight> <WindowWidth>28800</WindowWidth> <WindowTopX>0</WindowTopX> <WindowTopY>0</WindowTopY> <ProtectStructure>False</ProtectStructure> <ProtectWindows>False</ProtectWindows> </ExcelWorkbook> <Styles> ... ... ....
Delphi-Quellcode:
das sieht zwar schon mal wie ein xml-File aus, aber noch lange nicht so, wie ich meine (Excel-) Datei haben möchte. Gibt es irgendwo brauchbare Beispiele ?
<?xml version="1.0"?>
<Root> <Element id="1"> <Item1 Attr1="1" Attr2="1">Item1Value is 1</Item1> <Item2 Attr1="1" Attr2="1">Item2Value is 1</Item2> </Element> <Element id="2"> <Item1 Attr1="2" Attr2="2">Item1Value is 2</Item1> <Item2 Attr1="2" Attr2="2">Item2Value is 2</Item2> </Element> <Element id="3"> <Item1 Attr1="3" Attr2="3">Item1Value is 3</Item1> <Item2 Attr1="3" Attr2="3">Item2Value is 3</Item2> </Element> </Root> Ich danke euch |
AW: xml file erstellen
keiner ne idee? push
|
AW: xml file erstellen
Das musst Du schon "von Hand" machen.
|
AW: xml file erstellen
wie meinst du das "von Hand" ?
|
AW: xml file erstellen
Zitat:
|
AW: xml file erstellen
Na, die Elemente und Attribute musst Du schon selbst implementieren, wenn Du es mit einer generischen XML-Komponente machst.
|
AW: xml file erstellen
Auch wenn ich der Meinung bin, dass man aus einem Beispiel, das das eine erzeugt, auch was hinkriegen sollte - weil's nur fünf Minuten waren hier ein Beispiel:
Delphi-Quellcode:
Ergibt:
// https://en.wikipedia.org/wiki/Microsoft_Office_XML_formats
// http://www.delphipraxis.net/185583-xml-file-erstellen-2.html program ExcelXMLOutputDemo; uses SysUtils, DOM, XMLWrite; procedure CreateXML(const AFilename: string); var doc: TXMLDocument; function AddTextNode(AParentNode: TDOMNode; ANodeName, ATextValue: DOMString): TDOMNode; begin Result := doc.CreateElement(ANodeName); AParentNode.AppendChild(Result); Result.AppendChild(doc.CreateTextNode(ATextValue)); end; var nRoot, nDocProperties, nDocSettings: TDOMNode; begin doc := TXMLDocument.Create; try doc.XMLVersion := '1.0'; doc.AppendChild(doc.CreateProcessingInstruction('mso-application', 'progid="Excel.Sheet"')); nRoot := doc.CreateElement('Workbook'); TDOMElement(nRoot).SetAttribute('xmlns', 'urn:schemas-microsoft-com:office:spreadsheet'); TDOMElement(nRoot).SetAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); TDOMElement(nRoot).SetAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel'); TDOMElement(nRoot).SetAttribute('xmlns:ss', 'urn:schemas-microsoft-com:office:spreadsheet'); TDOMElement(nRoot).SetAttribute('xmlns:html', 'http://www.w3.org/TR/REC-html40'); doc.AppendChild(nRoot); nDocProperties := doc.CreateElement('DocumentProperties'); TDOMElement(nDocProperties).SetAttribute('xmlns', 'urn:schemas-microsoft-com:office:office'); nRoot.AppendChild(nDocProperties); AddTextNode(nDocProperties, 'Author', 'CCRDude'); AddTextNode(nDocProperties, 'LastAuthor', 'CCRDude'); AddTextNode(nDocProperties, 'Created', FormatDateTime('yyyy-mm-dd', Now) + 'T' + FormatDateTime('hh:nn:ss', Now) + 'Z'); AddTextNode(nDocProperties, 'Version', '15.0'); nDocSettings := doc.CreateElement('OfficeDocumentSettings'); TDOMElement(nDocSettings).SetAttribute('xmlns', 'urn:schemas-microsoft-com:office:office'); nRoot.AppendChild(nDocSettings); nDocSettings.AppendChild(doc.CreateElement('AllowPNG')); WriteXML(doc, AFilename); finally doc.Free; end; end; begin CreateXML('C:\Tests\excel.xml'); end.
Code:
In dem Beispiel dürfte alles drin sein - von Processing Instructions über Nodes (auch leeren), Text Nodes und Attributen.
<?xml version="1.0" encoding="utf-8"?>
<?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> <Author>CCRDude</Author> <LastAuthor>CCRDude</LastAuthor> <Created>2015-06-23T12:57:52Z</Created> <Version>15.0</Version> </DocumentProperties> <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> <AllowPNG/> </OfficeDocumentSettings> </Workbook> |
AW: xml file erstellen
ich danke dir herzlich
|
AW: xml file erstellen
mh, jetzt fehlen mir noch nodes die als parent nen Node haben.
vergesst den Post, ich habs, war wohl zu früh am Tag ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 Uhr. |
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