Laden...

Open XML Spalten einfügen.

Erstellt von GPuffe vor 6 Jahren Letzter Beitrag vor 6 Jahren 3.506 Views
G
GPuffe Themenstarter:in
11 Beiträge seit 2009
vor 6 Jahren
Open XML Spalten einfügen.

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

5.658 Beiträge seit 2006
vor 6 Jahren

Weeks of programming can save you hours of planning

G
GPuffe Themenstarter:in
11 Beiträge seit 2009
vor 6 Jahren

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

5.658 Beiträge seit 2006
vor 6 Jahren

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

G
GPuffe Themenstarter:in
11 Beiträge seit 2009
vor 6 Jahren

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

W
872 Beiträge seit 2005
vor 6 Jahren

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.

5.658 Beiträge seit 2006
vor 6 Jahren

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