In Worddokument in bestimmt Zeile schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jank
User
Beiträge: 9
Registriert: Sonntag 19. Februar 2012, 17:01

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