Laden...

[Erledigt] Excel 2007 XML : Leseproblem

Erstellt von Ahrimaan vor 13 Jahren Letzter Beitrag vor 13 Jahren 902 Views
A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 13 Jahren
[Erledigt] Excel 2007 XML : Leseproblem

verwendetes Datenbanksystem: XML Excel 2007

Hallo zusammen,

ich lese zu Fuß die XML Daten in einem XLSX Dokument.
Klappt EIGTL. ganz gut bis auf folgendes Phänomen :

Ich kann nicht auf die Subelemente zugreifen weils einfach keine gibt Oo

Im Anhang seht ihr den Aufbau der jeweiligen Row bzw. Cell
Und den passenden Fehler.
Unten seht ihr meinen XMl Lesenden Code.

Jmd ne Idee ?

Grüße

var workbookname = GetWorkbookName(doc.Element("worksheet").Element("pageSetup").Attribute("r" + 0x3A + "id").Value);
            var rows = GetExcelRows(from i in doc.Element("worksheet").Element("sheetData").Elements("row") select i);
 private ExcelCell GetExcelCell(XElement xmlElement)
        {
            var column = GetColumnName(xmlElement.Attribute("r").Value);
            var value = xmlElement.Attribute("t") != null
                            ? _sharedStrings[int.Parse(xmlElement.Element("v").Value)]
                            : string.Empty;
            var formula = xmlElement.Attribute("f") != null
                            ? xmlElement.Attribute("f").Value
                            : string.Empty;
            return new ExcelCell(GetColumnIndex(xmlElement.Attribute("r").Value),column,value,formula);
        }
L
27 Beiträge seit 2011
vor 13 Jahren

dieser Weg ist aber sehr steinig! Ich kenne mich besser bei Word (docx) aus. Aber Excel ist derselbe Schmäh:

Du liest direkt die xml-Struktur aus, aber Info's die du benötigst liegen ggf. nicht in dieser einen xml-Datei, sondern werden per ID referenziert. Der Wert liegt dann in einer anderen Datei.

Mit dem Open XML SDK 2.0 for Microsoft Office kannst du hier bequemer arbeiten. Hier wird dir ein richtiges Modell der OpenXML Dateien angeboten mit Datentypen usw.

A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 13 Jahren

Hi,

mir ist durchaus bewusst das es ein steiniger Weg ist aber mit der schnellste.
Implementierungen von Open XML zB ClosedXML bei Codeplex sind aber stinkend langsam bei vielen Daten. Und das liegt zu 80 % an der SDK .
Deswegen der weg zu Fuß.

Mein Problem sind nicht die Daten zu den shared Strings zu zu ordnen, mir geht es darum das eigtl. eindeutige Elemente nicht als solche erkannt werden.

Vll . hat jmd noch ne Idee ?

Grüße

A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 13 Jahren

Soo anch langem forschen nun rausgefunden :

der XELementname ist der Namespace + Element !

{http://schemas.openxmlformats.org/officeDocument/2006/relationships}id

Grüße