记一次测试过程中,需要针对一份已有数据的Excel进行追加写入测试结果,经尝试使用xlwt较为麻烦,并且不是在原有文件上修改,还不会保留原有Excel的格式。
使用网上推荐使用的xlutils.copy(),问题已解决,简单快速。
- 手动安装xlutils库
- 准备测试数据
- 需先使用xlrd模块读取Excel文件
import xlrd
import xlutils.copy
import os
def write_Excel(r, c, msg):
"""
已有数据的Excel表追加写入数据
:param r: 坐标行
:param c: 坐标列
:param msg: 写入信息
:return:
"""
file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'test.xls'))
book = xlrd.open_workbook(file_path, formatting_info=True) # 读取Excel
# 复制表
copy_book = xlutils.copy.copy(book)
copy_sheet = copy_book.get_sheet(0)
# 指定单元格写入信息
copy_sheet.write(r, c, msg)
# 保存文件
copy_book.save(file_path)
if __name__ == '__main__':
msg = 'test'
# (2,3)为D3单元格
write_Excel(2, 3, msg)
注意点:
- open_workbook()内若没有添加formatting_info=True,则保存的文件不会保留原有格式;
- Excel文件打开状态下,不可xlutils读取复制。运行会报错;
- 最新版本xlrd已不支持读取xlsx文件,运行也会报错。
结果展示:
执行前:
执行后:(保留原有格式)
Blog:
- 简书:https://www.jianshu.com/u/ec81abf35751
- CSDN:https://blog.csdn.net/qq_21238607
- 微信公众号:rzbbzr
网友评论