公众号后台回复“图书“,了解更多号主新书内容
作者:黄伟呢
来源:数据分析与统计学之美
引言
Python语言,近几年在办公自动化这一领域来说,真的超级火爆!用它做批量处理确实比VBA要方便很多。
前面的文章,我们已经讲述了如何将doc文件转换为docx文件,还没有观看的朋友直接戳此链接:
python-docx无法处理 “doc格式” 文件,于是我这样做......
今天黄同学再带大家探讨Python处理Excel文件时,遇到的一些问题。在Python中,有几个常用的库专门用来处理Excel文件,分别是xlrd、xlwt和openpyxl,简单介绍一下:
xlrd只能读取数据,可以处理xls和xlsx;
xlwt只能写数据,只能处理xls;
openpyxl可以读数据和写数据,但只能处理xlsx;
如果待处理的文件,既有xls,又有xlsx时,我觉得还是将它们一并转换为统一格式,再进行二次修改,显得更为方便。
同时,这里还有一种Excel文件,就是xlsm格式,该表格文件却很少被其他库支持。这种情况下,如果我们电脑有安装微软的Excel软件(非wps),就可以通过调用本地excel软件对表格文件进行格式转换,然后我们再进行其它操作。
正文
再给代码之前,我仍然给大家讲述一些知识点,方便大家一读就会。
上一篇文章,由于处理的是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
Excel文件的格式是最多的,这里我再给大家做一个总结,给你加深一下印象。
这里需要强调一下:后面的代码里,我们在使用SaveAs保存时,会用到一个FileFormat属性,其中:
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')
最终结果:
本文讲述完毕,代码附有注释,相信大家可以看明白,一篇文章总要留给大家一点思考空间,这里就不再过多赘述。
◆ ◆ ◆ ◆ ◆麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗