和 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 」即可获得全部源码