Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
"""
Werte in eine Excel-Arbeitsmappe schreiben
Requirements: Python: http://www.python.org/
pywin32: http://sourceforge.net/projects/pywin32/
"""
import datetime
import win32com.client
fieldnames = (u"Vorname", u"Nachname", u"Geburtstag")
values = (
(u"Max", u"Mustermann", datetime.date(1974, 8, 18)),
(u"Leo", u"Mustermann", datetime.date(1974, 8, 19)),
(u"Maria", u"Musterfrau", datetime.date(1974, 8, 20)),
)
# Werte vermehren -- zum Testen
values = 10 * values
# Verbindung zu Excel aufnehmen
app = win32com.client.dynamic.Dispatch("Excel.Application")
# Neue Arbeitsmappe
workbook = app.Workbooks.Add()
# Neues Arbeitsblatt
worksheet = workbook.Worksheets.Add()
worksheet.Name = "Adressen"
# Hinweis: Cells-Syntax: Cells(row_id, col_id)
# Feldnamen schreiben (und fett formatieren)
for index, fieldname in enumerate(fieldnames):
worksheet.Cells(1, (index + 1)).Value = fieldname
worksheet.Cells(1, (index + 1)).Font.Bold = True
# Feldwerte schreiben
for index, (vorname, nachname, geburtstag) in enumerate(values):
worksheet.Cells(index + 2, 1).Value = vorname
worksheet.Cells(index + 2, 2).Value = nachname
worksheet.Cells(index + 2, 3).Value = geburtstag
# Bereichsnamen vergeben
cells = worksheet.Range("A1", worksheet.Cells(len(values) + 1, len(fieldnames)))
cells.Name = "Adressen"
# Workbook speichern und schließen
workbook.SaveAs(u"test.xls")
workbook.Close()
# Excel anzeigen
#app.visible = True
# Excel schließen
app.Quit()
# Objekte in der richtigen Reihenfolge löschen
del worksheet
del workbook
del app
mfg
Gerold
Stichworte: Excel Arbeitsmappe Arbeitsblatt Workbook Worksheet pywin32 win32com dispatch