Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[Erledigt] Excel 2007 XML : Leseproblem
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

[Erledigt] Excel 2007 XML : Leseproblem

beantworten | zitieren | melden

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);
        }
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Ahrimaan am .
Attachments
private Nachricht | Beiträge des Benutzers
Ludus
myCSharp.de - Member



Dabei seit:
Beiträge: 27

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

beantworten | zitieren | melden

Soo anch langem forschen nun rausgefunden :

der XELementname ist der Namespace + Element !

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

Grüße
private Nachricht | Beiträge des Benutzers