Hallo,
ich habe gerade begonnen mich mit diesem Thema näher zu befassen. Ich möchte aus einer Web-Anwendung (ASP.NET) eine Excel-Datei mit verschiedenen Daten aus einer Datenbank befüllen. Hierzu habe ich eine Vorlage, welche ich dann kopiere und bearbeite. Das funktioniert auch schon ganz gut. Mein Problem ist nun, dass ich mehrere Spalten in die Excel-Datei einfügen muss, da die Daten dynamisch sind (Pivot-Table). ich habe nun schon eine Weile gesucht, aber noch nichts wirklich passendes gefunden (Insertbefore, Insertat, Insertafter...????).
Nun hoffe ich, dass sich hier jemand super mit Open XML auskennt und mir die richtigen Tipps, am besten schon ein wenig Code, geben kann.
Gruß
Gerald
Siehe evtl. auch OpenXml Spreadsheet spaltenweise beschreiben
Weeks of programming can save you hours of planning
Hi,
ich hab mir das mal kurz angesehen, bzw. ich kannte die Artikel schon.
So wie ich das interpretiere, werden da keine Spalten in vorhandene Sheets eingefügt. Die Spalten werden formatiert, bzw. einzelne Zellen eingefügt. Korrigier mich bitte, bzw. benenne mal die Seite genau, wo ganze Spalten eingefügt werden. Sollte das nicht mit InsertBefore, InsertAfter, bzw. InsertAs funktionieren. zu diesen Funktionen habe ich allerdings nur Beispiele zum Einfügen von Zellen und Zeilen gefunden.
Danke
Gerald
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Erstes Suchergebnis bei Google: Add Columns to Existing Excel 2007 workbook using Open Xml.
Benutzt werden dort die WorkSheet.Append bzw. WorkSheet.InsertBefore-Methoden. Wenn das nicht ausreicht, mußt du etwas konkreter werden.
Beachte bitte [Hinweis] Wie poste ich richtig?, Punkt 1, 4 und 5.
Weeks of programming can save you hours of planning
Hallo,
nun war ich zwischenzeitlich im Urlaub. Dieser ist nun vorbei, doch das Problem ist noch da.
Auf der Seite von stackoverflow wird nur gezeigt, wie Spalten angelegt werden (ich nenne es einmal sichtbar machen), um diese zu bearbeiten. Ich möchte aber in einer Tabelle mit den Spalten A bis BU zum Beispiel vor der Spalte D 3 neue Spalten einfügen. Dabei sollen alle Spalten von D bis BU nach rechts verschoben werden. Und das wird dort nicht beschrieben.
Ist das überhaupt mit OpenXML möglich?
Auf der Seite von stackoverflow wird auf EEPlus verwiesen. Vielleicht kann mir da ja noch jemand Tipp's dazu geben.
Gruß
Gerald
OpenXML ist das Dokumentenformat für Excel, da sind keine Verschiebefunktionen drin.
Deshalb musst Du selber alle Spalten verschieben, indem Du die letzte benutzte Spalte findest, von dort ausgehend alles eins nach rechts bis zur der gewünschten Stelle verschiebst und dann einfügst.
Sollte trotzdem sehr schnell sein. Wie das mit XML so ist, braucht man manchmal viel Hauptspeicher - das ist das einzige was ich innerhalb einer Webanwendung etwas kritisch sehen würde, aber Excel auf dem Server geht nicht.
Aus der Doku zur InsertBefore-Methode:
Inserts the specified element immediately before the specified reference element.
Weeks of programming can save you hours of planning