
使用Python开发微软的Excel通常需要使用第三方库,如xlrd、xlwt、xlutils、xlwings、win32com、openpyxl、pandas等,各种第三方库都有自己独特的功能和缺陷,因此在采用这些第三方库之前需要慎重考虑。
如:xlrd只能读取在Excel文件中的数据;xlwt只能在Excel文件中写入数据;xlutils虽然可以读写Excel文件的数据,但是它依赖于xlrd和xlwt;xlwings可以从Excel中调用Python,也可在Python中调用Excel;win32com可以独立读写Excel文件的数据;openpyxl也可以独立读写Excel文件的数据;pandas能够读写在Excel文件中的数据,但是它需要xlrd/xlwt/openpyxl/xlsxwriter等库的配合。
下面介绍Python辅助Excel实例批量创建空白的Excel文件,此实例的编写环境为PyCharm 2019.3.5 x64和Python 3.8。
实例功能
此案例主要通过在for循环中调用openpyxl.Workbook()方法和Workbook 的save()方法,从而实现根据不同的文件名称在指定目录中批量创建多个空白的Excel文件。当运行此案例的Python代码(A001.py文件)之后,将自动在当前目录(MyCode\A001)中创建7个空白的Excel文件,效果分别如图1和图2所示。
■ 图1
■ 图2
实现代码
#导入openpyxl库
import openpyxl
#设置分公司名称列表(myNames)
myNames=['北京分公司','上海分公司','深圳分公司','西安分公司',
'沈阳分公司','重庆分公司','武汉分公司']
#循环列表(myNames)的分公司名称(myName)
for myName in myNames:
#根据分公司名称(myName)设置Excel文件的名称
myPath='结果表-'+myName+'2020年度利润表.xlsx'
#新建空白工作簿(myBook)
myBook=openpyxl.Workbook()
#根据参数(myPath)保存空白工作簿(myBook),即创建(保存)多个空白的Excel文件
myBook.save(myPath)
代码说明
在上面这段代码中,import openpyxl表示导入操作Excel的openpyxl库。在Python代码中使用openpyxl库时,必须首先在工程中添加openpyxl库。在PyCharm集成开发环境中创建Python工程、编写代码及添加openpyxl库的步骤如下。
(1) 启动(运行)PyCharm,弹出图3所示的工程创建对话框。

■ 图3
(2) 在图3所示的对话框中单击Create New Project按钮,然后在弹出的对话框(New Project)的Location文本框中输入工程位置,如“F:\MyCode”,如图4所示,再单击Create按钮,PyCharm即在指定位置新建工程MyCode。

■ 图4
(3) 在PyCharm中右击左侧Project下的工程名称MyCode,在弹出的菜单中执行New→Directory命令,如图5所示,则将弹出New Directory对话框,然后在该对话框的输入框中输入目录名称A001,按下Enter键,即完成在MyCode工程下新建A001目录。
■ 图5
(4) 在PyCharm中右击Project下MyCode→A001目录,在弹出的菜单中执行New→Python File命令,如图6所示,则将弹出New Python file对话框,然后在该对话框的输入框中输入Python文件名称A001,如图7所示,再按下Enter键,即完成在MyCode\A001目录下新建A001.py文件。

■ 图6
■ 图7
(5) 此时在A001.py文件中输入import openpyxl代码,PyCharm将自动检测到一个错误(No module named openpyxl),如图8所示,因此必须在工程中添加openpyxl库。

■ 图8
(6) 首先在PyCharm左侧的Project中选择工程名称MyCode,再执行File→Settings命令,即弹出Settings对话框。在Settings对话框左侧执行Project:MyCode→Project Interpreter命令,如图9所示,然后单击右侧的“+”按钮,即弹出Available Packages对话框。

■ 图9
(7) 在Available Packages对话框的“搜索”文本框中输入openpyxl,然后在下面的列表中选择openpyxl,则将在右侧区域中显示openpyxl的相关信息(注意:必须保持网络畅通),如图10所示。
■ 图10
然后单击Install Package按钮,即执行在线安装openpyxl库(包)。在安装openpyxl库(包)成功之后则提示Package'openpyxl'installed successfully,如图11所示。

■ 图11
此时依次关闭Available Packages对话框和Settings对话框,返回到A001.py文件的编辑对话框,则不会出现错误(No module named openpyxl)。当在右侧的编辑区域将A001.py文件的Python代码编写完成之后,即可在左侧Project下右击执行MyCode→ A001→A001.py命令,再在弹出的菜单中选择Run 'A001'命令,如图1所示,此时将运行A001.py文件的Python代码,执行结果是在A001目录中批量生成7个Excel文件,如图2所示。当然也可以在cmd窗口中以命令行(python A001.py)风格实现相同的功能:即在执行python A001.py命令之前,使用dir命令不会在目录中显示7个Excel文件(因为不存在),当执行python A001.py命令之后,使用dir命令则在目录中显示7个Excel文件(因为刚刚创建),如图12所示。

■ 图12
补充说明
当在MyCode工程中成功添加openpyxl库之后,即可在MyCode工程的任何目录中添加Python文件,并在这些Python文件中任意调用openpyxl库的对象和方法执行Excel的相关操作。
关于如何安装PyCharm和Python 3.8解释器,请参考PyCharm 安装教程(https://www.runoob.com w3cnote/pycharm-windows-install.html)。此外,阅读和使用本案例要求读者具备一定的Python语言编程基础和操作Excel的基本常识,关于Python语法基础可以参考Python 基础语法教程(https://www.runoob.com/python/python-basic-syntax.html)。

扫码观看讲解视频
源代码下载
关注微信公众号,后台回复关键词 “Python辅助Excevl001” 即可获得完整源代码。
参考书籍
《Python辅助Word+Excel:让办公更高效》
ISBN:9787302592464
作者:罗帅、罗斌
定价:99.8元

扫码优惠购书
347个典型办公场景
问题描述+解决方案+真实源码+效果截图
Python+Word+Excel实现办公自动化,
成倍提高办公效率
优化数据分析,让工作省点力!
告别重复劳动,蜕变职场精英!



