杰瑞科技汇

如何安装xlutils库?

什么是 xlutils

xlutils 是一个 Python 库,它不是用来直接创建或写入 Excel 文件的,它的核心作用是结合 xlrdxlwt 库,提供对现有 Excel 文件(.xls 格式)进行读取、修改和写入的功能

如何安装xlutils库?-图1
(图片来源网络,侵删)
  • xlrd: 读取 Excel 文件(.xls)。
  • xlwt: 写入 Excel 文件(.xls)。
  • xlutils: 连接 xlrdxlwt,让你可以在读取一个文件后,对其进行修改,然后保存为新文件或覆盖原文件。

重要提示xlutils 主要支持旧版的 .xls 文件格式,对于新版 .xlsx 文件,推荐使用更现代的库,如 openpyxlpandas


如何安装 xlutils

xlutils 的安装非常简单,通常使用 pip 包管理器即可,由于它依赖于 xlrdxlwt,一个常见的做法是同时安装这三个库,以避免潜在的依赖问题。

推荐的安装命令(一次性安装所有依赖)

在您的终端或命令行中运行以下命令:

pip install xlutils

这个命令会自动安装 xlutils 以及它所依赖的 xlrdxlwt

如何安装xlutils库?-图2
(图片来源网络,侵删)

分步安装(可选)

如果你想更明确地控制安装过程,也可以分别安装:

# 1. 安装 xlutils
pip install xlutils
# 2. (可选) 如果上面的命令没有自动安装依赖,可以手动安装
pip install xlrd
pip install xlwt

验证安装

安装完成后,你可以在 Python 环境中尝试导入这些库来验证安装是否成功:

import xlrd
import xlwt
from xlutils import copy
print("xlrd, xlwt, and xlutils are installed successfully!")

如果没有报错,说明安装成功。


基本使用示例

xlutils 最常用的功能是复制一个工作簿,然后修改其中的内容,核心函数是 copy.copy()copy.copy()

下面是一个完整的示例,演示如何读取一个现有的 Excel 文件,修改其中的一个单元格,然后保存为新文件。

准备工作:创建一个示例 Excel 文件

我们创建一个名为 original.xls 的文件,内容如下:

A B
1 Name Score
2 Alice 85
3 Bob 92
4 Charlie 78

Python 代码示例

import xlrd
from xlutils import copy
import os
# 1. 打开一个已存在的 Excel 文件 (使用 xlrd)
# 注意:xlrd.open_workbook() 以只读模式打开
rb = xlrd.open_workbook('original.xls')
# 2. 使用 xlutils.copy 复制这个工作簿
# 复制后,你可以对新的工作簿进行修改
# wb 是一个 xlwt.Workbook 对象,可以进行写入操作
wb = copy.copy(rb)
# 3. 获取第一个工作表 (sheet)
# 复制后的工作簿对象可以通过 sheet_by_index 获取工作表
sheet = wb.get_sheet(0) # 或者 wb.sheet_by_index(0)
# 4. 修改指定单元格的值
# xlutils 的行列索引是从 0 开始的
# B2 单元格是 (行1, 列1)
sheet.write(1, 1, 95) # 将 B2 单元格的值从 85 改为 95
# 5. 将修改后的工作簿保存为新文件
# 注意:必须使用 .xls 作为扩展名
wb.save('modified.xls')
print("文件修改成功,已保存为 modified.xls")
# (可选) 演示如何追加数据
# 再次复制原始文件
wb_add = copy.copy(rb)
sheet_add = wb_add.get_sheet(0)
# 在最后一行追加新数据
# 先获取当前行数
last_row = sheet_add.nrows
sheet_add.write(last_row, 0, 'David') # A列
sheet_add.write(last_row, 1, 88)    # B列
# 保存追加后的文件
wb_add.save('appended.xls')
print("数据追加成功,已保存为 appended.xls")

运行上述代码后,你会得到两个新文件:

  • modified.xls: B2 单元格的值变为 95。
  • appended.xls: 在原始数据下方增加了一行 "David, 88"。

重要注意事项

  1. 仅支持 .xls 格式xlutils 无法直接处理 .xlsx 文件,如果你需要操作 .xlsx 文件,请使用 openpyxl 库。

  2. 文件覆盖风险wb.save() 会直接覆盖同名文件,在执行保存操作前,最好确保文件名是正确的,或者先备份原始文件。

  3. 库的更新状态xlrd 从 2.0 版本开始,移除了对 .xlsx 文件的支持,如果你主要处理 .xlsx 文件,xlutils + xlrd 的组合就不是最佳选择。xlwt 也已经停止更新,对于新项目,强烈推荐使用 openpyxlpandas


xlutils vs. openpyxl (现代替代方案)

特性 xlutils openpyxl
支持的格式 .xls .xlsx (推荐), .xls
读写能力 读取 (xlrd) + 写入 (xlwt) 读取和写入
API 风格 相对底层,需要手动复制工作簿 更直观,可以直接操作工作簿、工作表、单元格
社区支持 较弱,基本不再更新 非常活跃,是处理 Excel 文件的主流选择
适用场景 维护旧项目,处理大量旧的 .xls 文件 新项目,处理现代 .xlsx 文件

openpyxl 简单示例(对比)

from openpyxl import load_workbook
# 1. 加载一个 .xlsx 文件
wb = load_workbook('data.xlsx') # load_workbook 会保持文件打开,以便修改
# 2. 选择活动工作表
ws = wb.active
# 3. 直接修改单元格值
ws['B2'] = 95 # 直接使用单元格地址,非常方便
# 4. 保存(会自动覆盖原文件)
wb.save('data_modified.xlsx')
print("使用 openpyxl 修改成功!")
  • 安装pip install xlutils
  • 用途:专门用于修改已存在的 .xls 文件。
  • 核心方法from xlutils import copy wb = copy.copy(rb)
  • 局限性:仅支持旧版 .xls 格式,库已不再更新。
  • 现代选择:对于新的 .xlsx 文件处理,请使用 openpyxlpandas
分享:
扫描分享到社交APP
上一篇
下一篇