Laden...

Excel: Spalte formatieren?

Erstellt von MillionsterNutzer vor 18 Jahren Letzter Beitrag vor 18 Jahren 4.947 Views
M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 18 Jahren
Excel: Spalte formatieren?

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

178 Beiträge seit 2006
vor 18 Jahren

Moin,


rng = ws.get_Range("A1", Type.Missing);

Enjoy

Christian Arnold

M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 18 Jahren
eher nicht...

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

M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 18 Jahren
geht doch...

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...

M
49 Beiträge seit 2005
vor 18 Jahren

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

M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 18 Jahren
Hät ich das nur vorher gewußt...

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