Excel中的xls、xlsx、xlsm混合文件,看我用Python如何統(tǒng)一處理......
↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能
↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能
后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包
后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包
引言
Python語言,近幾年在辦公自動(dòng)化這一領(lǐng)域來說,真的超級(jí)火爆!用它做批量處理確實(shí)比VBA要方便很多。
前面的文章,我們已經(jīng)講述了如何將doc文件轉(zhuǎn)換為docx文件,還沒有觀看的朋友直接戳此鏈接:

今天黃同學(xué)再帶大家探討Python處理Excel文件時(shí),遇到的一些問題。在Python中,有幾個(gè)常用的庫專門用來處理Excel文件,分別是xlrd、xlwt和openpyxl,簡單介紹一下:
xlrd只能讀取數(shù)據(jù),可以處理xls和xlsx; xlwt只能寫數(shù)據(jù),只能處理xls; openpyxl可以讀數(shù)據(jù)和寫數(shù)據(jù),但只能處理xlsx;
如果待處理的文件,既有xls,又有xlsx時(shí),我覺得還是將它們一并轉(zhuǎn)換為統(tǒng)一格式,再進(jìn)行二次修改,顯得更為方便。
同時(shí),這里還有一種Excel文件,就是xlsm格式,該表格文件卻很少被其他庫支持。這種情況下,如果我們電腦有安裝微軟的Excel軟件(非wps),就可以通過調(diào)用本地excel軟件對表格文件進(jìn)行格式轉(zhuǎn)換,然后我們再進(jìn)行其它操作。

正文
再給代碼之前,我仍然給大家講述一些知識(shí)點(diǎn),方便大家一讀就會(huì)。
上一篇文章,由于處理的是Word文檔,因此這里調(diào)用的是Word程序,那處理Excel文檔,這里就需要調(diào)用Excel程序了; 在Python中,文檔用Documents表示,工作簿用Workbooks表示,因此處理不同的文件,我們需要調(diào)用不同的屬性,打開對應(yīng)的文件;
#?調(diào)用word程序
WordApp?=?win32com.client.Dispatch("Word.Application")
#?調(diào)用excel程序
WordApp?=?win32com.client.Dispatch("Excel.Application")
#?打開word文檔
w.Documents.Open(path)
#?打開Excel工作簿
w.Workbooks.Open(path)
#?后臺(tái)運(yùn)行,不顯示,不警告
WordApp.Visible?=?0
WordApp.DisplayAlerts?=?0Excel文件的格式是最多的,這里我再給大家做一個(gè)總結(jié),給你加深一下印象。

這里需要強(qiáng)調(diào)一下:后面的代碼里,我們在使用SaveAs保存時(shí),會(huì)用到一個(gè)FileFormat屬性,其中:
FileFormat=51,表示xlsx擴(kuò)展文件; FileFormat=56,表示xls擴(kuò)展文件; FileFormat=52,表示xlsm擴(kuò)展文件; FileFormat=23,表示csv擴(kuò)展文件;
好了,前期準(zhǔn)備知識(shí)講述完畢,這里直接給大家上代碼。
import?os
import?time
import?win32com
from?win32com.client?import?Dispatch
def?xls_xlsx(path):
???w?=?win32com.client.Dispatch('Excel.Application')
???w.Visible?=?0
???w.DisplayAlerts?=?0
???wb?=?w.Workbooks.Open(path)
???#?這里必須要絕對地址,保持和xls路徑一致
???newpath?=?allpath+'\\轉(zhuǎn)換后的文檔.xlsx'
???wb.SaveAs(newpath,FileFormat?=?51)
???#?doc.Close()?開啟則會(huì)刪掉原來的dxls
???w.Quit()#?退出
???return?newpath
allpath?=?os.getcwd()
print(allpath)
xls_xlsx(allpath+'\\轉(zhuǎn)換前的文檔.xls')最終結(jié)果:

本文講述完畢,代碼附有注釋,相信大家可以看明白,一篇文章總要留給大家一點(diǎn)思考空間,這里就不再過多贅述。
-------------------?End?-------------------
見面禮
掃碼加我微信備注「三劍客」送你上圖三本Python入門電子書?
推薦閱讀





