在上一篇插上翅膀,讓Excel飛起來——xlwings(一)中提到利用xlwings模塊,用python操作Excel有如下的優點:
- xlwings能夠非常方便的讀寫Excel文件中的數據,並且能夠進行單元格格式的修改
- 可以和matplotlib以及pandas無縫連接
- 可以調用Excel文件中VBA寫好的程序,也可以讓VBA調用用Python寫的程序。
- 開源免費,一直在更新
本文緊接着上文介紹了xlwings模塊一些常用的api

xlwings基本對象
常用函數和方法
- Book 工作簿常用的api
wb=xw.books[‘工作簿名稱']- wb.activate()激活為當前工作簿
- wb.fullname 返回工作簿的絕對路徑
- wb.name 返回工作簿的名稱
- wb.save(path=None) 保存工作簿,默認路徑為工作簿原路徑,若未保存則為腳本所在的路徑
-wb. close() 關閉工作簿
代碼例子:# 引用Excel程序中,當前的工作簿 wb=xw.books.acitve # 返回工作簿的絕對路徑 x=wb.fullname # 返回工作簿的名稱 x=wb.name # 保存工作簿,默認路徑為工作簿原路徑,若未保存則為腳本所在的路徑 x=wb.save(path=None) # 關閉工作簿 x=wb.close()
- sheet 常用的api
# 引用某指定sheet sht=xw.books['工作簿名稱'].sheets['sheet的名稱'] # 激活sheet為活動工作表 sht.activate() # 清除sheet的內容和格式 sht.clear() # 清除sheet的內容 sht.contents() # 獲取sheet的名稱 sht.name # 刪除sheet sht.delete
- range常用的api
# 引用當前活動工作表的單元格 rng=xw.Range('A1') # 加入超鏈接 # rng.add_hyperlink(r'www.baidu.com','百度',‘提示:點擊即鏈接到百度') # 取得當前range的地址 rng.address rng.get_address() # 清除range的內容 rng.clear_contents() # 清除格式和內容 rng.clear() # 取得range的背景色,以元組形式返回RGB值 rng.color # 設置range的顏色 rng.color=(255,255,255) # 清除range的背景色 rng.color=None # 獲得range的第一列列標 rng.column # 返回range中單元格的數據 rng.count # 返回current_region rng.current_region # 返回ctrl + 方向 rng.end('down') # 獲取公式或者輸入公式 rng.formula='=SUM(B1:B5)' # 數組公式 rng.formula_array # 獲得單元格的絕對地址 rng.get_address(row_absolute=True, column_absolute=True,include_sheetname=False, external=False) # 獲得列寬 rng.column_width # 返回range的總寬度 rng.width # 獲得range的超鏈接 rng.hyperlink # 獲得range中右下角最后一個單元格 rng.last_cell # range平移 rng.offset(row_offset=0,column_offset=0) #range進行resize改變range的大小 rng.resize(row_size=None,column_size=None) # range的第一行行標 rng.row # 行的高度,所有行一樣高返回行高,不一樣返回None rng.row_height # 返回range的總高度 rng.height # 返回range的行數和列數 rng.shape # 返回range所在的sheet rng.sheet #返回range的所有行 rng.rows # range的第一行 rng.rows[0] # range的總行數 rng.rows.count # 返回range的所有列 rng.columns # 返回range的第一列 rng.columns[0] # 返回range的列數 rng.columns.count # 所有range的大小自適應 rng.autofit() # 所有列寬度自適應 rng.columns.autofit() # 所有行寬度自適應 rng.rows.autofit()
- books 工作簿集合的api
# 新建工作簿 xw.books.add() # 引用當前活動工作簿 xw.books.active
- sheets 工作表的集合
# 新建工作表 xw.sheets.add(name=None,before=None,after=None) # 引用當前活動sheet xw.sheets.active
實例
大Z老師,教了小z同學怎么用python操作Excel之后,利用第一篇和第二篇的知識,編寫了一個python小腳本,給小Z同學演示了一下怎么用python調整單元格的行寬、列寬和背景色,做一些Interesting的事。

大Z老師的作品.png
小Z同學在看了這么cliche但是好玩的東西之后,自己果斷地修改了代碼,改變了單元格的顏色,並在sheet里面進行了題字,然后,便有新的作品:

小z的作品.png
下一課有機會教小z同學,利用python自帶的time模塊,讓Excel中靜態的畫和字動起來,成為像gif一樣的圖片。
參考資料:
xlwings官方文檔
作者:LuckyFrog
鏈接:http://www.jianshu.com/p/b534e0d465f7
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。