Mit python win32com kann nicht zwei separate Tabellen in MS Word 2007

Ich versuche, mehrere Tabellen in einem neuen Microsoft Word-Dokument mit Python zu erstellen. Ich kann die erste Tabelle richtig machen. Aber ich glaube, ich habe das COM Range Objekt falsch konfiguriert. Es zeigt nicht auf das Ende. Der erste Tisch ist vor "Hallo bin ich ein Text!", Der zweite Tisch wird in die erste Zelle des ersten Tisches gelegt. Ich dachte, dass die Rückkehr einer Range von wordapp wird die volle Bandbreite zurück, dann kollabieren sie mit wdCollapseStart Enum, die ich denke, ist 1. (Ich kann nicht finden, die Konstanten in Python win32com.). So das Hinzufügen einer Tabelle zum Ende des Range wird es am Ende des Dokuments hinzufügen, aber das ist nicht passiert.

Irgendwelche Ideen?

Danke Tim

import win32com.client wordapp = win32com.client.Dispatch("Word.Application") wordapp.Visible = 1 worddoc = wordapp.Documents.Add() worddoc.PageSetup.Orientation = 1 worddoc.PageSetup.BookFoldPrinting = 1 worddoc.Content.Font.Size = 11 worddoc.Content.Paragraphs.TabStops.Add (100) worddoc.Content.Text = "Hello, I am a text!" location = worddoc.Range() location.Collapse(1) location.Paragraphs.Add() location.Collapse(1) table = location.Tables.Add (location, 3, 4) table.ApplyStyleHeadingRows = 1 table.AutoFormat(16) table.Cell(1,1).Range.InsertAfter("Teacher") location1 = worddoc.Range() location1.Paragraphs.Add() location1.Collapse(1) table = location1.Tables.Add (location1, 3, 4) table.ApplyStyleHeadingRows = 1 table.AutoFormat(16) table.Cell(1,1).Range.InsertAfter("Teacher1") worddoc.Content.MoveEnd worddoc.Close() # Close the Word Document (a save-Dialog pops up) wordapp.Quit() # Close the Word Application 

One Solution collect form web for “Mit python win32com kann nicht zwei separate Tabellen in MS Word 2007”

Das Problem scheint im Range-Objekt zu sein, das einen Teil des Dokuments darstellt. In meinem ursprünglichen Code enthält das Range-Objekt die erste Zelle und startet bei der ersten Zelle, wo es einfügen wird. Stattdessen möchte ich am Ende des Sortiments einfügen. Also habe ich den folgenden Code ersetzt, um zu arbeiten. Ich habe den Collapse nach dem Add () Aufruf verschoben und gab ihm ein Argument von 0. Jetzt gibt es nur einen Collapse Call pro Range Objekt.

 location = worddoc.Range() location.Paragraphs.Add() location.Collapse(0) 

Jetzt funktioniert der Code, ich kann aus einer Datenbank lesen und neue Tabellen aus jedem Eintrag füllen.

Tim

  • Python speichern xlBild aus der Zwischenablage
  • COM "get property" mit mehreren Argumenten
  • Wie man python win32com verwendet, um als Excel-Datei zu speichern
  • Automatisierung von Excel mit Win32com auf Linux mit Wein
  • Wie speichert man Attachment aus Outlook mit win32com.client in Python?
  • Kopieren von Informationen aus einer Arbeitsmappe in eine andere Arbeitsmappe mit win32com
  • Python win32com - Automatisieren von Word - Wie erstelle ich Text in einem Textfeld?
  • Py2exe / pyinstaller und DispatchWithEvents
  • Python 2.7 - win32com.client - Verschieben eines Arbeitsblattes von einer Arbeitsmappe in eine andere
  • Python - Wie schalte ich Excel Auto Filter auf Zellen in nicht-ersten Zeile?
  • Python lese meine Outlook E-Mail-Mailbox und parse Nachrichten
  • Python ist die beste Programmiersprache der Welt.