Python:使用xlutils模块在已有Excel文件内追加写功能


记一次测试过程中,需要针对一份已有数据的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)

注意点:

  1. open_workbook()内若没有添加formatting_info=True,则保存的文件不会保留原有格式;
  2. Excel文件打开状态下,不可xlutils读取复制。运行会报错;
  3. 最新版本xlrd已不支持读取xlsx文件,运行也会报错。

结果展示:
执行前:
Python:使用xlutils模块在已有Excel文件内追加写功能_第1张图片
执行后:(保留原有格式)
Python:使用xlutils模块在已有Excel文件内追加写功能_第2张图片


你可能感兴趣的:(Python学习)