Excel中的xls、xlsx、xlsm混合文件,看我用Python如何统一处理......
引言
xlrd只能读取数据,可以处理xls和xlsx; xlwt只能写数据,只能处理xls; openpyxl可以读数据和写数据,但只能处理xlsx;
正文
上一篇文章,由于处理的是Word文档,因此这里调用的是Word程序,那处理Excel文档,这里就需要调用Excel程序了; 在Python中,文档用Documents表示,工作簿用Workbooks表示,因此处理不同的文件,我们需要调用不同的属性,打开对应的文件;
# 调用word程序
WordApp = win32com.client.Dispatch("Word.Application")
# 调用excel程序
WordApp = win32com.client.Dispatch("Excel.Application")
# 打开word文档
w.Documents.Open(path)
# 打开Excel工作簿
w.Workbooks.Open(path)
# 后台运行,不显示,不警告
WordApp.Visible = 0
WordApp.DisplayAlerts = 0
FileFormat=51,表示xlsx扩展文件; FileFormat=56,表示xls扩展文件; FileFormat=52,表示xlsm扩展文件; FileFormat=23,表示csv扩展文件;
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+'\\转换后的文档.xlsx'
wb.SaveAs(newpath,FileFormat = 51)
# doc.Close() 开启则会删掉原来的dxls
w.Quit()# 退出
return newpath
allpath = os.getcwd()
print(allpath)
xls_xlsx(allpath+'\\转换前的文档.xls')
更多阅读
特别推荐
点击下方阅读原文加入社区会员
评论