2009-06-08 10 views
3

Mit Excel 2003 und höher ist es möglich, das SpreadsheetML-Format zu verwenden, um Excel-Tabellen mit nur einem XML-Stylesheet und einer XML-Datendatei zu generieren. Ich habe das in einem Projekt verwendet und funktioniert ganz gut, auch wenn es nicht einfach ist. Von der Microsoft-Download-Site habe ich die XSDs heruntergeladen, aus denen SpreadsheetML besteht, und in meiner Ignoranz habe ich versucht, sie in C# -Klassen umzuwandeln. Leider ist xsd.exe nicht sehr glücklich über diese Schemadateien, so dass ich dazu neige, festgefahren zu sein. Ich brauche keine alternative Lösung zu SpreadsheetML, da es für meine Bedürfnisse gut funktioniert. Es ist nur so, dass mein Code für meine Teammitglieder leichter zu pflegen wäre, wenn er nicht in einem komplexen Stylesheet geschrieben wäre. (Es ist der einzige XSLT-Experte in Ihrem Unternehmen.)Erstellen einer Excel SpreadsheetML in Code. (Ohne Excel!)

Alles, was ich wissen möchte, wenn jemand erfolgreich Excel SpreadsheetML-Dateien mit .NET ohne die Verwendung von Drittanbieter-Code und ohne XSLT erstellt hat. Und wenn Sie das tun, wie haben Sie das gelöst?

(Oder vielleicht muss ich nur noch herausfinden, wie Namespaces innerhalb XML.Linq zu XML-Elemente hinzufügen ...)

+0

Kannst du das nicht einfach mit COM machen? Ich frage mich nur. – jgallant

+0

Nun, der Code ist Teil eines Webservers und es ist kein Office auf diesem Webserver installiert, noch werden jemals Office oder Excel auf diesem Webdienst installiert. Btw, mit XSLT funktioniert gut und schafft das gewünschte Ergebnis. Aber da ich der einzige XSLT-Experte in meinem Unternehmen bin, möchte ich eine Lösung bereitstellen, die andere Teammitglieder verstehen können. –

Antwort

1

Vor einiger Zeit habe ich die XmlDocument und Freunde ein SpreadsheetML Dokument mit Formeln, Formaten zu erstellen und so weiter, so ist es möglich, wenn auch ein wenig knifflig.

Diese MSDN page ist, was Sie benötigen, um mit der Verwendung des Namespace in LINQ zu beginnen.

+0

Und genau das habe ich gesucht! :-) Zumindest haben meine Teammitglieder mehr Erfahrung mit C# als mit XSLT, also spielt es keine Rolle, dass es ein bisschen fummelig wird. –

+0

Froh, Hilfe zu sein :) – Ant

0

ich auf ein ähnliches Problem vor ein paar Wochen, aber aufgrund einiger bevorstehenden Probleme begonnen hatte ich musste es in den Hintergrund stellen.

Damals habe ich auf diesen http://www.codeproject.com/KB/aspnet/ExportClassLibrary.aspx?fid=113399&df=90&mpp=25&sort=Position&tid=2609600

Ich konnte wirklich nicht damit beginnen, aber plane, bald wieder auf, es zu bekommen. Ich hoffe, der Link hilft.

prost

+0

Leider ist die Tabelle, die ich generiere, mehr als nur eine Liste von Daten, die nach Excel konvertiert wurden. Es enthält mehrere Formeln und einige Formatierungen, die der Benutzer unmittelbar nach dem Herunterladen verwenden kann. Der einzige Zweck ist eine einfache Möglichkeit für Benutzer, die Daten auf dem Server zu validieren. Die gleichen Daten werden auch über einen Webdienst an eine Clientanwendung geliefert. Es ist nur so, dass das Excel-Blatt einfacher zu validieren ist. –

1

Ich habe diese Bibliothek verwendet und es gibt sogar ein Werkzeug, um den C# -Code zu generieren, den Sie von einer existierenden Excel-Datei benötigen. http://www.carlosag.net/Tools/ExcelXmlWriter/

+0

Interessant, leider Code von Drittanbietern. Trotzdem, guter Tipp! +1 –

Verwandte Themen