python操作Excel文件之VBA

通過python的win32com接口可以調用Microsoft的office組件,從而實現對excel的讀寫操作。該方法只實用於windows平臺,且需要安裝Microsoft Office Excel.

本人使用的python版本爲ActiveState發佈的ActivePython for Windows,它附帶了win32com包,就不需要額外再下載了,使用起來非常方便。如果想試一試,可以從如下地址免費下載:[url]http://www.activestate.com/activepython[url].


import win32com.client
app = win32com.client.Dispatch('Excel.Application')


如上代碼引入包in32com.client之後, 建立一個Excel.Application組件實例,它代表了整個excel軟件。當獲得實例app後,就可以使用和VBA相同的屬性和函數了。下面簡單解釋一下VBA中用於操作Excel的相關類型。

和Excel相關的所有類型都在命名空間Microsoft.Office.Interop.Excel下。Application是最上層的,Workbook代表一個excel, 一個Workbook有多個Worksheet。
具體請參考:[url]http://msdn.microsoft.com/zh-cn/library/ms262200(v=Office.11).aspx[/url]

一個演示代碼:

#scripts to demo operate Excel via VBA
import os
import win32com.client

fileName = os.path.abspath('Test.xls')

app = win32com.client.Dispatch('Excel.Application')
workbook = app.Workbooks.Open(fileName)
print workbook.Sheets.Count

sheet = workbook.Sheets('Sheet1')
#sheet.Rows, Columns, Cells
print sheet.Cells(1,1).Value

#set cell backgroup color
sheet.Cells(3,1).Value = 'Good Day'
sheet.Cells(3,1).Interior.Color = 0xFFFF #by RGB
sheet.Cells(3,2).Interior.ColorIndex = 15 #by ColorIndex

#set font and color
sheet.Cells(3,3).Value = 'Good Night'
sheet.Cells(3,3).Font.Bold = True
sheet.Cells(3,3).Font.Color = 0xFF

#print row,column count
print sheet.UsedRange.Rows.Count
print sheet.UsedRange.Columns.Count

#save and quite
workbook.Save()
workbook.Close()
app.Quit()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章