
使用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实例,分别是自定义工作表指定列的宽度,和根据字符串的最大长度设置列宽。
实例功能
此案例主要通过使用指定的数字设置指定列(mySheet.column_dimensions['C'])的width属性,从而实现在工作表中自定义指定列的宽度。当运行此案例的Python代码(A121.py文件)之后,“收入表.xlsx”文件的收入表的C列列宽将变窄,代码运行前后的效果分别如图1和图2所示。

■ 图1

■ 图2
实现代码
import openpyxlmyBook=openpyxl.load_workbook('收入表.xlsx')mySheet=myBook.active#设置收入表(mySheet)的C列的宽度为10mySheet.column_dimensions['C'].width=10myBook.save('结果表-收入表.xlsx')
代码说明
在上面这段代码中,mySheet.column_dimensions['C'].width=10表示设置收入表(mySheet)C列的宽度为10。
此案例的源文件是MyCode\A121\A121.py。

扫码观看讲解视频,限免三天
实例功能
此案例主要通过使用列(mySheet.column_dimensions['B'])的width属性和Python语言的len()函数、max()函数等,从而实现在(工作表的某个)列中根据(所有单元格的)字符串的最大长度设置列宽。当运行此案例的Python代码(A322.py文件)之后,将根据“高校汇总表.xlsx”文件高校汇总表高校列的所有单元格字符串的最大长度设置高校列的列宽,代码运行前后的效果分别如图3和图4所示。

■ 图3

■ 图4
实现代码
import openpyxlmyBook=openpyxl.load_workbook('高校汇总表.xlsx',data_only=True)mySheet=myBook.activemyList=[0]#从高校汇总表(mySheet)的第2行开始逐行循环(到最后一行)for myRow in list(mySheet.rows)[1:]:#在列表(myList)中添加高校列的单元格的字符串长度myList.append(len(myRow[1].value))#在列表(myList)中获取最大的字符串长度,即最大列宽myMaxWidth=max(myList)#根据最大列宽设置高校汇总表(mySheet)的高校列(B列)的宽度mySheet.column_dimensions['B'].width=myMaxWidth*2myBook.save('结果表-高校汇总表.xlsx')
代码说明
在上面这段代码中,len(myRow[1].value)表示字符串(myRow[1].value)长度,例如:myLen= len('重庆大学、西南大学'),则myLen=9。myMaxWidth=max(myList)表示在列表(myList)中查找最大值,例如:myMaxWidth=max([0,9,11,25,18,16]),则myMaxWidth=25。mySheet.column_dimensions['B'].width=myMaxWidth*2表示设置高校汇总表(mySheet)B列的宽度为myMaxWidth*2。
此案例的源文件是MyCode\A322\A322.py。
补充说明
阅读和使用本书案例要求读者具备一定的Python语言编程基础和操作Excel的基本常识,关于Python语法基础可以参考Python 基础语法教程(https://www.runoob.com/python/python-basic-syntax.html)。

扫码观看讲解视频,限免三天
源代码下载
关注微信公众号,后台回复关键词 “Python辅助Excevl074” 即可获得完整源代码。


参考书籍
《Python辅助Word+Excel:让办公更高效》
ISBN:9787302592464
作者:罗帅、罗斌
定价:99.8元


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











