Python使用xlrd/xlwt/xlutils读写与追加Excel文件
本文介绍如何使用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库使用的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













