Excel中的xls、xlsx、xlsm混合文件,看我用Python如何統(tǒng)一處理......

引言
xlrd只能讀取數(shù)據(jù),可以處理xls和xlsx; xlwt只能寫數(shù)據(jù),只能處理xls; openpyxl可以讀數(shù)據(jù)和寫數(shù)據(jù),但只能處理xlsx;

正文
上一篇文章,由于處理的是Word文檔,因此這里調(diào)用的是Word程序,那處理Excel文檔,這里就需要調(diào)用Excel程序了; 在Python中,文檔用Documents表示,工作簿用Workbooks表示,因此處理不同的文件,我們需要調(diào)用不同的屬性,打開對(duì)應(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?=?0
FileFormat=51,表示xlsx擴(kuò)展文件; FileFormat=56,表示xls擴(kuò)展文件; FileFormat=52,表示xlsm擴(kuò)展文件; FileFormat=23,表示csv擴(kuò)展文件;
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)
???#?這里必須要絕對(duì)地址,保持和xls路徑一致
???newpath?=?allpath+'\\轉(zhuǎn)換后的文檔.xlsx'
???wb.SaveAs(newpath,FileFormat?=?51)
???#?doc.Close()?開啟則會(huì)刪掉原來(lái)的dxls
???w.Quit()#?退出
???return?newpath
allpath?=?os.getcwd()
print(allpath)
xls_xlsx(allpath+'\\轉(zhuǎn)換前的文檔.xls')
更多閱讀
特別推薦

點(diǎn)擊下方閱讀原文加入社區(qū)會(huì)員
評(píng)論
圖片
表情
