Python使用xlrd/xlwt/xlutils读写与追加Excel文件

拾光
拾光
发布时间:2026-10-11 | 1人浏览过
原创

本文介绍如何使用Python的xlrd、xlwt和xlutils三个库来操作Excel文件。重点讲解如何读取现有.xls文件,利用xlutils进行复制和修改,并通过xlwt将新数据追加到指定行,最后保存覆盖原文件。

准备工作:安装必要的Python库

在Python中操作传统的.xls格式Excel文件,通常需要借助三个核心库:xlrd、xlwt和xlutils。它们各自承担不同的职责:xlrd专门用于读取Excel文件,xlwt用于创建并写入新的Excel文件,而xlutils则作为一个工具集,用于整合读写操作,特别是实现文件的复制与修改。

你可以通过pip命令安装这三个库:

sudo pip install xlrd
sudo pip install xlwt
sudo pip install xlutils

实现Excel文件的读取与追加写入

要实现“读取现有文件并追加新数据”的功能,核心思路是:先读取原文件获取当前行数,复制该文件对象,然后在新对象中定位到最后一行之后开始写入新数据,最后保存。

以下是完整的Python代码示例:

#coding:utf-8

from xlrd import open_workbook
from xlutils.copy import copy

# 1. 使用xlrd打开现有的Excel文件
rexcel = open_workbook("collection.xls")

# 2. 获取当前Excel文件中第一个sheet的行数
rows = rexcel.sheets()[0].nrows

# 3. 使用xlutils.copy将xlrd对象转换为xlwt对象(即可写对象)
excel = copy(rexcel)

# 4. 获取要操作的sheet对象
table = excel.get_sheet(0)

# 5. 定义要追加的数据
values = ["1", "2", "3"]

# 6. 从当前最后一行的下一行开始写入
row = rows
for value in values:
    # 使用xlwt对象的write方法写入数据,参数依次为:行号、列号、值
    table.write(row, 0, value)
    table.write(row, 1, "haha")
    table.write(row, 2, "lala")
    row += 1

# 7. 保存文件,注意这会覆盖原来的collection.xls
excel.save("collection.xls")

关键步骤解析

  • 读取行数:通过rexcel.sheets()[0].nrows获取原文件中已使用的行数,这是确定新数据写入起始位置的关键。
  • 对象转换:copy(rexcel)是核心步骤,它将只读的xlrd工作簿对象转换为可写的xlwt工作簿对象,从而允许我们修改内容。
  • 写入数据:table.write(row, col, value)方法用于在指定行列写入值。注意行号从0开始,且追加时应从nrows开始,避免覆盖原有数据。
  • 保存文件:excel.save()会将修改后的内容保存回原文件名。此操作会直接覆盖原始文件,因此在执行前建议备份重要数据。

以上就是Python读写/追加excel文件Demo分享的详细内容,更多关于Python Excel操作、xlrd xlwt xlutils库使用的资料请关注本站其它相关文章!

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表