日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

wxpython处理excel_Python操作Excel的Xlwings教程(二)

發(fā)布時間:2025/3/20 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wxpython处理excel_Python操作Excel的Xlwings教程(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在上篇文章《操作Excel的Xlwings教程(一)》中介紹了Python 中操作Excel的一些模塊,重點介紹了Xlwings的一些基本操作。

本次文章將繼續(xù)上次的知識點,將介紹Xlwings的一些API知識,并展示一些小例子,讓大家可以跟著教程進(jìn)行實際的操作。

一、Apps

先來看一點點代碼

import xlwings as xw

app1 = xw.App()

app2 = xw.App()

print(xw.apps)

第二、三行代碼建立了兩個創(chuàng)建工作簿實例,運行后發(fā)現(xiàn):默認(rèn)的打開了兩個工作簿,這兩個工作簿會顯示的存在于你的桌面。

如果不想顯示,我們在創(chuàng)建實例的時候可以使用參數(shù):wx.App(visible=False)

第四行輸出為:Apps([, ]),其中[9244]和[19476]即為這兩個實例的PID。

其他方法:

xw.apps.active # 返回活動的應(yīng)用程序

# print(xw.apps.active) # 輸出,活動應(yīng)用程序的key

xw.apps.count # 計算app的總數(shù)

xw.apps.add() # 新增一個app

xw.apps.keys() # 返回所有Excel實例的PID

Active:很多小伙伴可能對激活不是很清楚,舉個例子:我們再使用Excel軟件的時候,可以打開好幾個工作簿,但是我們不能對打開的工作簿同時進(jìn)行操作,只能操作其中一個。這個Active的作用就是激活其中的一個你想使用的工作簿,將它變?yōu)榛顒庸ぷ鞑尽?/p>

二、APP

如何找出當(dāng)前打開的所有Book對象呢?

我們先建立幾個workbook,看看都有什么效果:

for i in range(1,4):

wookbook = xw.Book() #創(chuàng)建新的App并在創(chuàng)建的App新建Book

print(wookbook)

print(xw.books) #當(dāng)前打開的所有Book對象的集合

輸出如下:

Books([,, ])

可知:xw.Book()會新建工作簿,這里默認(rèn)會新建一個App,即打開Excel程序,并新建一個工作簿。而且Book這種方式則會打開多個窗口,之前所說的App.books.open方式則不會。

順便提一下引用工作簿的方法:(使用工作簿前要引用工作簿)

xw.Book('工作簿1') # 通過Book

xw.books['工作簿1'] # 通過books

(1)wb.app.calculate() # Calculates all open books.

(2)wb.app.calculation = ‘manual’ # 設(shè)置計算模式

(3)wb.app.display_alerts = True # 默認(rèn)值為True。False的情況下執(zhí)行操作的時候會忽略Excel的提示和警報消息(即彈窗信息)

(4)wb.app.screen_updating = False # 禁止屏幕更新(刷新)

(5)wb.app.range(cell1, cell2=None) # 獲取單元格

(6)wb.app.selection # 將所選單元格作為Range返回

(7)xw.App().version # 返回Excel程序版本號

三、Books

首先要知道所有的Book構(gòu)成Books,即Books是所有Book對象的集合,在第二節(jié)中已有描述。

那么Books中有哪些常用的方法或?qū)傩阅?#xff1f;

我們在示例中進(jìn)行簡單的說明:

import xlwings as xw

app1 = xw.App()

app2 = xw.App()

print(xw.books)

book_keys = xw.apps.keys()

first_book = book_keys[0] # 取列表的第一個值

print(xw.apps[first_book].books) # 應(yīng)用

print(app1.books.active) # 激活一個Book

print('count1:',app1.books.count) # 先打印一下app1下Book的總數(shù)

app1.books.add() # 增加一個新的Book,此新建的Book將自動變成被激活的Book

print('count1:',app1.books.count) # 再次打印app1下Book的總數(shù)

app1.books.open('1.xlsx') # 打開操作,如果工作簿未打開則打開,若它已經(jīng)打開,則返回工作簿對象。

# 或指定絕對路徑打開文件 app1.books.open('D:\datafile\1.xlsx')

print(app1.books.open('1.xlsx')) # 再一次打印app1下Book的總數(shù)

print('count1:',app1.books.count)

以上print的輸出依次為:

此時win10系統(tǒng)中,資源管理器的Excel進(jìn)程顯示如下:

可以看出,app1下打開了3個工作簿,app2下打開了1個工作簿。若想關(guān)閉某一個app下的全部工作簿的時候,可以使用kill(),如app1.kill()。

四、Book

官網(wǎng)中介紹到:A book object is a member of the books collection,即Book對象是Books集合的成員。下表顯示了xw.Book()和xw.books三種情況下的操作:(上篇推文也有介紹)

Tips:差別在于xw.Book()創(chuàng)建新的工作薄實例,xw.books是在活動工作薄中尋找一個實例

xw.Book()打開文件的時候,可選參數(shù)較多,具體的參數(shù)可以查看其構(gòu)造函數(shù),或者查看上篇文章10先生:Python操作Excel的Xlwings教程(一)?zhuanlan.zhihu.com

方法和屬性

xw.Book.activate(steal_focus=True) # True則激活最前面的窗口,并將焦點從python移交給excel

xw.Book.app # 獲取創(chuàng)建工作簿的app對象

xw.Book.caller() # 當(dāng)通過RunPython從Excel調(diào)用Python函數(shù)時引用調(diào)用的工作簿

xw.Book.set_mock_caller() # 設(shè)置當(dāng)前工作薄為Python代碼的調(diào)用者即set_mock_caller讓Python知道誰是調(diào)用者

xw.Book.close() # 關(guān)閉工作簿而不進(jìn)行保存

xw.Book.selection # 返回選定的單元格作為Range

xw.Book.macro() # 在Excel VBA中運行Sub或Function

xw.Book.name # 返回工作簿的名稱

xw.Book.names # 返回一個名稱集合

xw.Book.save(path=None) # 保存工作簿,可傳入保存路徑,同名會直接覆蓋

xw.Book.sheets # 返回表示工作簿中所有工作表的工作表集

對于xw.Book.set_mock_caller()的解釋此處引用網(wǎng)上的一段話:“有時代碼是從Python環(huán)境直接調(diào)試或調(diào)用的,沒有使用Excel里面的RunPython, 這時候沒有地方設(shè)定代碼的調(diào)用者是誰,就運行這個函數(shù)來假裝一下某個workbook就是這些代碼的調(diào)用者,讓Python環(huán)境與調(diào)用者能夠關(guān)聯(lián)起來。”

# 此代碼在Excel中通過RunPython和Python直接運行

import os

import xlwings as xw

def my_macro():

sheet = xw.Book.caller().sheets[0]

sheet.range('A1').value = '我愛python知識學(xué)堂'

if __name__ == '__main__':

xw.Book('1.xlsm').set_mock_caller() # 設(shè)置調(diào)用者

my_macro()

關(guān)于這個例子在后期會在解釋,主要是告訴大家可以使用Python實現(xiàn)對Excel的操作實現(xiàn)。具體實現(xiàn)的時候我們還要搭建在Excel中運行Python的環(huán)境。

關(guān)于一些操作不理解的小伙伴建議打開編譯器進(jìn)行實踐一下哦。

五、小結(jié)

這次的推文主要介紹了Apps、App、Books和Book相關(guān)的知識,對于這些概念覺可以這樣理解和記憶:App相當(dāng)于Excel程序(前文的進(jìn)程截圖);

?Book相當(dāng)于Excel的工作簿;

Range相當(dāng)于單元格,也可以是單元格區(qū)域;

多個Excel程序則由Apps表示,單個為App;

多個工作簿用Books表示,單個為Book;

多個工作表用Sheets表示,單個為Sheet。

總結(jié)

以上是生活随笔為你收集整理的wxpython处理excel_Python操作Excel的Xlwings教程(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。