Python xlutils实现Excel追加写与格式保留

慢慢来
慢慢来
发布时间:2026-10-12 | 3人浏览过
原创

本文介绍如何使用Python的xlutils库实现Excel文件的追加写入并保留原有格式。通过结合xlrd读取和xlwt写入,利用copy()方法复制工作簿,可避免直接写入导致的格式丢失问题。文章提供了完整的代码示例,并详细说明了xls与xlsx后缀文件的兼容性及常见操作异常的处理方法。

使用 xlutils 实现 Excel 追加写

在 Python 中处理 Excel 文件时,直接使用 xlwt 进行写入操作会面临两个主要限制:一是无法实现追加写(即保留原有数据),二是直接写入会导致原有格式丢失。为了解决这两个问题,可以使用 xlutils 模块。该模块的核心思路是:利用 xlrd 读取现有文件,再通过 xlwt 进行写入,并通过 copy() 方法将读取到的工作簿复制一份,从而在保留格式的基础上进行追加或修改操作。

关键代码与操作步骤

实现追加写的核心流程包括:打开源文件、复制工作簿、获取可写入的 Sheet 对象,最后保存文件。以下是关键代码示例:

# 使用 formatting_info=True 来复制带有格式的excel,否则追加写后格式会丢失
rb = xlrd.open_workbook(goal_file,formatting_info=True) 
#通过sheet_by_index()获取的sheet没有write()方法
rs = rb.sheet_by_index(0) 
wb = copy(rb)
#通过get_sheet()获取的sheet有write()方法
ws = wb.get_sheet(0)
#获得到sheet了 可以进行 追加写 或者 修改某个单元格数据的操作了 最后不要忘了 save()

在上述代码中,xlrd.open_workbook 的 formatting_info=True 参数至关重要,它确保了复制后的工作簿保留了原有的格式信息。通过 copy(rb) 复制工作簿后,必须使用 wb.get_sheet(0) 获取 Sheet 对象,因为只有该对象才具备 write() 方法。完成数据写入后,务必调用 wb.save(goal_file) 保存更改。

模版文件处理与异常处理

在实际操作中,如果目标文件不存在但存在模版文件,通常需要先复制模版文件。以下代码展示了如何处理模版文件的复制:

from xlutils.copy import copy
try:

 if not os.path.exists(goal_file) and os.path.exists(model_src) :
 shutil.copy(model_src,goal_file)
 print '复制模版成功'
except Exception ,e:
 print "模版文件复制失败"
 pass

注意事项与常见问题

  • 文件后缀限制:模版文件的后缀必须是 .xls。如果后缀为 .xlsx,xlrd 在 0.8 版本后不再支持,会抛出异常。
  • 手动修改风险:不要手动打开 .xls 文件并修改其值。手动修改后,再次调用 save() 会抛出异常。
  • 格式保留:务必使用 formatting_info=True 打开工作簿,否则追加写后格式会丢失。

以上就是Python xlutils实现Excel追加写与格式保留的详细内容,更多关于Python Excel操作的技术资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表