Excel作為我們日常辦公過程中必備的數(shù)據(jù)處理軟件,幾乎天天在用。
很多python模塊也對Excel提供了API支持,比如之前說過的pandas、openpyxl等都對Excel的操作提供了很好的支持。
今天介紹的這款python模塊就是xlwings,相比于其他的python對Excel的數(shù)據(jù)處理模塊。xlwings可以和matplotlib、numpy以及pandas(三劍客)很好的兼容。
另外xlwings也可以和Excel-VBA進行相互調用的操作,接下來我們直接進入正題。
下面給出官方的接口文檔地址,供小伙伴們參考。
https://docs.xlwings.org/en/latest/
xlwings作為python的非標準模塊,需要使用pip的方式安裝一下該模塊。
pip install xlwings
完成xlwings模塊的安裝之后,先來看看xlwings對與Excel的一些常規(guī)操作。下面主要通過兩個部分來說明,分別是xlwings對Excel的操作、xlwings和matplotlib、numpy以及pandas(三劍客)的配合使用。
1、xlwings處理Excel數(shù)據(jù)
通過xlwings模塊獲取并處理Excel文檔對象以及工作表,完成文件數(shù)據(jù)對象初始化。
# 導入xlwings模塊
import xlwings as xlw
# 讀取Excel文檔數(shù)據(jù)對象
work_book = xlw.Book('/usr/local/test.xlsx')
# 獲取Excel的工作表sheet對象
sheet_ = work_book.sheets["sheet1"]
# 打印工作表的絕對路徑地址
print(work_book.fullname)
# 打印工作簿的名稱
print(sheet_.name)
通過xlwings模塊讀取、寫入單元格的數(shù)據(jù)值對象,完成對Excel文檔中的數(shù)據(jù)操作。
# 讀取當前工作表的某個單元格的內容
print(sheet_.range('A1').value)
# 寫入當前工作表的某個單元格的內容
sheet_.range('A1').value = 'Python 集中營'
# 清除某個單元格的內容和格式
sheet_.range('A2').clear()
# 在某個單元格中輸入Excel的計算公式
sheet_.range('A3').fornula = '=SUM(B6:B7)'
# 獲取單元格中的公式
print(sheet_.range('A4').formula_array)
2、xlwings配合三劍客使用
xlwings模塊支持通過numpy模塊的array函數(shù)可以直接將數(shù)組的序列化數(shù)據(jù)直接寫入到某個單元格中。
# 導入numpy模塊,用于創(chuàng)建array數(shù)組
import numpy as np
# 初始化numpy模塊的數(shù)組對象
array_data = np.array(('a', 'b', 'c'))
# 將array數(shù)組對象直接賦值給某個單元格
sheet_.range('A5').value = array_data
# xlwings模塊支持將pandas.DataFrame數(shù)據(jù)對象直接寫入到
# 某個單元格中。
# 導入pandas模塊,用于處理DataFrame對象的數(shù)據(jù)
import pandas as pd
# 初始化pandas.DataFrame數(shù)據(jù)對象
data_frame = pd.DataFrame([['a', 'b'], ['c', 'd']], columns=['name', 'value'])
# pandas.DataFrame數(shù)據(jù)對象賦值給某個單元格
sheet_.range('A6').value = data_frame
也可以將某個單元格的數(shù)據(jù)直接讀取并返回pandas.DataFrame數(shù)據(jù)對象。
# xlwings模塊讀取并返回DataFrame對象
data_frame2 = sheet_.range('A7').options(pd.DataFrame, expand='table').value
# 通過matplotib模塊創(chuàng)建圖表對象繪制,然后使用xlwings模塊將圖表對對象保存
# 到Excel的文件對象中。
# 導入matplotlib圖表繪制模塊
import matplotlib.pyplot as plt
# 創(chuàng)建Figure圖表對象
fig_ = plt.figure()
# 繪制圖表
plt.plot(['a', 'b', 'c', 'd'])
# 將Figure圖表對象寫入到Excel對象中
sheet_.pictures.add(fig_, name='圖表', update=True)
更多關于xlwings模塊的Excel操作可以前往xlwings官方網(wǎng)站進行查看,操作內容更加豐富。
https://www.xlwings.org/
3、2023-04-15粉絲分享排行榜
以下是4月份粉絲福利,請分享排行榜中排名第一名的小伙伴聯(lián)系博主獲取隨機編程類書籍。
有需要桌面應用定制化開發(fā)的小伙伴可以前往 [軟件定制活動頁] 了解詳情!
剛剛在GitHub發(fā)現(xiàn)的開數(shù)據(jù)源可視化分析工具,只通過配置的方式即可完成個性化的可視化應用制作!