Hi,
ich muß mit meinem Progrämmchen auch Excel-files generieren, dabei kam jetzt das Request hinzu die generierten Tabellen auch gleich zu formatieren, damit das ganze etwas ansprechender und übersichtlicher aussieht.
Angefangen habe ich damit zum Beipiel die erste Zeile mit den Überschriften zu formatieren. Z.B. so:
Excel.Range rng = (Excel.Range)ws.Rows[ZeilenNummer, Type.Missing];
rng.WrapText = true;
rng.RowHeight = 80;
Klappt soweit auch ganz gut. Jetzt geht es an die Spalten und da liegt das Problem. Eigentlich sollte man erwarten das man eine Spalte so auswählt:
Excel.Range rng = (Excel.Range)ws.Columns[Type.Missing, SpaltenNummer];
Fehlanzeige! Diese Codezeile gibt mir eine nichtssagende Fehlermeldung aus und ich kann mir keinen anderen Weg vorstellen eine Spalte sonst auszuwählen.
Kennt sich da jemand von euch aus und kann mir einen Tip geben?
Grüße
Moin,
rng = ws.get_Range("A1", Type.Missing);
Enjoy
Christian Arnold
hi trinkjoghurt,
zwar wirft dein Vorschlag keinen Fehler aus, allerings sehe ich auch kein Ergebnis. Für welche Spalte soll "A1" stehen? Für die erste Spalte? Wäre B1 dann die zweite?
aber ich habe gerade eben noch eine Alternative gefunden. Ich muß einfach nur eine Zelle als Range in der gewünschten Spalte markieren:
rng = (Excel.Range)ws.cells[1, 1];
und anschließend kann ich mit:
rng.EntrieColumn.xyz...;
darauf zugreifen.
Ich denke man kann die Sache als gelöst ansehen....
Danke
Grüße
Hi trinkjoghurt,
dein Vorschlag geht doch, allerdings werde ich an meiner "neu entdeckten" Methode festhalten, da ich nicht weiß wie ich ohne große Umstände z.B. die fünfte Spalte als "E1" errechnen kann, oder die dritte als "C1"...
Wenn du hierfür aber eine Lösung hast wäre ich dir dankbar...
Guten Abend.
Ich hatte kürzlich dasselbe Problem, und es ist einfach zu lösen, auch wenn man es nicht vermuten würde. Leider ist die Managed API für die Office-Produkte eine der schlechteren Umsetzungen und ich ersehen den Tag, an dem Microsoft sich entschließt diese neu aufzusetzen, oder gleich ein managed Office implementiert. Angesichts der neue Produktlinie Visual Studio Tools for Office 2003/2005 hatte ich schon Hoffnung, die sich aber nicht bestätigt hat.
Aber zur Sache:
Auch wenn Intellisense und der Objekt-Explorer etwas anderes sagen, verwendet man folgendes Konstrukt erhält man tatsächlich die Spalte:
Excel.Range oRange = (Excel.Range)ws.Columns[SpaltenNummer, Type.Missing];
Auch wenn es zunächst so aussieht, als würde man damit die Reihe abfragen.
-Martin Ehrlich
Martin Ehrlich
Hi MartinE,
das wäre natürlich die sauberste Lösung gewesen! Danke!
Allerdings werd ich meinen Cod jetzt nicht mehr umschreiben...
Drei Lösungswege für das gleiche Problem - das hätte ich nicht erwartet.
Ich hoffe dieser Thread bleibt der Welt noch eine Zeit lang erhalten, denn ich denke dieses Problem weren noch einige andere haben...
Grüße