最全总结 | 聊聊 Python 办公自动化之 Excel(下) (2)

和 openpyxl 类似,有 2 种使用方式,分别是:字符串索引、列索引数字索引

def set_column_width(sheet, index_start, index_end, width): """ 设置列宽 :param sheet: :param index_start: 开始位置,从1开始 :param index_end: 结束位置 :param width: 宽度 :return: """ # 方式二选一 # self.current_sheet.set_column('A:C', width) # 默认0代表第一列 sheet.set_column(index_start - 1, index_end - 1, width) # 设置列宽度 # 设置第1列到第3列的宽度为:100 set_column_width(self.current_sheet, 1, 3, 100)

行高使用 set_row() 方法,传入行索引和高度即可

def set_row_height(sheet, row_index, height): """ 设置行高 :param sheet: :param row_index: 行索引,从1开始 :param height: :return: """ sheet.set_row(row_index - 1, height) # 设置行高 set_row_height(self.current_sheet, 1, 50) set_row_height(self.current_sheet, 2, 100)

写入数据完毕之后,将工作簿关闭,文件会自动保存到本地

def teardown(self): # 写入文件,并关闭文件 self.wb.close()

xlsxwriter 还支持插入图表,比如:条形图、柱状图、雷达图等,受限于篇幅,这部分内容就不展开说明了

3. 其他方式

还有一种比较常见的方式是:xlwings

xlwings 是一款开源免费的依赖库,同时支持 Excel 文件的读取、写入、修改

它功能非常强大,还可以和 Matplotlib、Numpy 和 Pandas 无缝连接,支持读写 Numpy、Pandas 数据类型;同时,xlwings 可以直接调用 Excel 文件中 VBA 程序

需要注意的是,xlwings 依赖于 Microsoft Excel 软件,所以使用 WPS 的用户建议直接使用 openpyxl

官方文档:

https://docs.xlwings.org/zh_CN/latest/quickstart.html

另外,还有一个操作 Excel 比较强大的方式,即:Pywin32

其中,

Pywin32 相当于调用 Win 下的系统 API 来操作 Excel 文件

优点是:可以处理复杂图表的数据表

缺点也非常明显,包含:速度慢、占用 CPU 高,仅支持 Win 系统

4. 最后

综合发现,xlrd/xlwt、openpyxl、xlsxwriter 基本上可以满足大部分的日常 Excel 文档操作

要获取全部源码,关注公众号「 AirPython 」,后台回复「 excel 」即可获得全部源码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjgws.html