標籤:python excel win32com
通過簡單的執行個體實現Python與Excel程式實現互動控制。
需要安裝pywin32,根據自己的實際情況選擇下載版本
引入組件
import win32com.client, win32process
開始啟動Excel
win32com.client.Dispatch(‘Excel.Application‘):啟動Excel進程,如果系統記憶體中存在Excel進程則直接使用現有的進程不會新增
win32com.client.DispatchEx(‘Excel.Application‘):啟動一個新的Excel進程
win32com.client.gencache.EnsureDispatch(‘Excel.Application‘):和第一情況一樣,但是會檢測是否存在快取檔案。產生常量快取檔案便於調用程式的常量參數如:win32com.client.constants.xlCalculationManual等。一旦緩衝產生,三種方式都可以調用常量參數
快取檔案的目錄:
import osprint os.path.join(win32com.__gen_path__, str(win32com.client.gencache.GetClassForProgID(‘Excel.Application‘)).split(‘.‘)[2])
這裡測試我們選擇案頭互動的方式控制已開啟的空白活頁簿
xlApp = win32com.client.gencache.EnsureDispatch(‘Excel.Application‘)print (xlApp.Version, xlApp.Caption)
擷取Excel進程Id
Pid = win32process.GetWindowThreadProcessId(xlApp.Hwnd)[1]print Pid
控制使用中工作表
Sht = xlApp.ActiveWorkbook.ActiveSheetprint Sht.Nameimport datetimeSht.Name = datetime.datetime.today().strftime(‘%Y%m%d‘)print Sht.Name
儲存格讀寫操作
1. 九九乘法表
Sht.Range(Sht.Cells(1,1), Sht.Cells(9,9)).Formula = ‘=IF(COLUMN()>ROW(),"",CONCATENATE(COLUMN(),"x",ROW(),"=",COLUMN()*ROW()))‘
2. 批量讀取
print Sht.Range(Sht.Cells(1,1), Sht.Cells(9,9)).Value
3. 簡單瞭解Value、Value2、Text三者的區別
A10 = Sht.Range(‘A10‘)A10.Value = datetime.datetime.today()print (A10.Value, A10.Value2, A10.Text)
:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/5C/02/wKiom1UY10eR_seZAAboRMVllgI436.jpg" title="PythonExcel20150330-1.png" alt="wKiom1UY10eR_seZAAboRMVllgI436.jpg" />
(未完)
本文出自 “筆記” 部落格,請務必保留此出處http://indie.blog.51cto.com/2806716/1626378
Python啟動Excel