Seite 1 von 1

In Worddokument in bestimmt Zeile schreiben

Verfasst: Montag 29. Oktober 2012, 14:20
von jank
Hallo,

ich lese aus einer XLS-Tabelle die Inhalte aus einer Spalte aus und diese sollen in ein WORD-Dokument geschrieben werden.
Bsp.: In der Tabelle steht in Zelle A1 = 1, A2 = 2, A3 = 3 usw.

Diese Inhalte sollen so in ein WORD-Dokument, dass beispielsweise die "1" in der 2. Zeile kommt, die "2" dann erst nach 2 Leerzeilen in die 4. Zeile kommt usw.
Es sollen also immer 2 Leerzeilen zwischen den Werten kommen.

Im Moment sieht mein Code wie folgt aus:

Code: Alles auswählen

i = 0

for i in range(i,3):
  cell_A1 = sh.cell(i,0).value
  
  worddoc.Content.Text = "\n\n" + cell_A1

i = i + 1
Der Zeilenumbruch \n ist noch manuell eingefügt und müsste sicherlich über eine Variable gesteuert werden?!?

Hat jemand eine Idee oder einen Ansatzpunkt für mich?

Danke im Voraus!!

Gruß

Jan

Re: In Worddokument in bestimmt Zeile schreiben

Verfasst: Montag 29. Oktober 2012, 15:09
von BlackJack
@jank: Das `i` ausserhalb der Schleife, also die Zuweisung davor und das erhöhen um eins danach, macht keinen Sinn.

Wenn `worddoc.Context.Text` den gesamten Inhalt des Dokuments setzt, dann macht es natürlich keinen Sinn jede Zelle einzeln nacheineinander als den *gesamten* Text zu setzen. Du musst dann erst den gesamten Inhalt als Zeichenkette erstellen und *dann* *einmal* diesem Attribut zuweisen.

Stichworte dazu: der Datentyp `list` und die `join()`-Methode auf Zeichenketten.

Das Sammeln der Zellenwerte kann man auch als „list comprehension” oder noch kompakter als Generator-Ausdruck als Argument vom `join()`-Aufruf formulieren.