"""Derived from _Python Programming on Win32_ by Mark Hammond and Andy Robinson"""
import win32com.client import win32com.client.dynamic class Excel: def __init__(self, filename=None): self.xlApp = win32com.client.dynamic.Dispatch('Excel.Application') if filename: self.filename = filename self.xlBook = self.xlApp.Workbooks.Open(filename) else: self.xlBook = self.xlApp.Workbooks.Add() self.filename = '' def save(self, newfilename=None): if newfilename: self.filename = newfilename self.xlBook.SaveAs(newfilename) else: self.xlBook.Save() def close(self): self.xlBook.Close(SaveChanges=0) del self.xlApp def show(self): self.xlApp.Visible = 1 def hide(self): self.xlApp.Visible = 0 def get_cell(self, sheet, row, col): "get value of one cell" sht = self.xlBook.Worksheets(sheet) return sht.Cells(row, col).Value def set_cell(self, sheet, row, col, value): "set value of one cell" sht = self.xlBook.Worksheets(sheet) sht.Cells(row, col).Value = value def get_range(self, sheet, row1, col1, row2, col2): "return a 2d array (i.e. tuple of tuples)" sht = self.xlBook.Worksheets(sheet) return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value def set_range(self, sheet, leftCol, topRow, data): bottomRow = topRow + len(data) - 1 rightCol = leftCol + len(data[0]) - 1 sht = self.xlBook.Worksheets(sheet) sht.Range(sht.Cells(topRow, leftCol), sht.Cells(bottomRow, rightCol)).Value = data -- http://mail.python.org/mailman/listinfo/python-list