Python使用xlutils修改已存在Excel文件并保留格式

Hazel
Hazel
发布时间:2026-10-13| 5人浏览过
原创

本文介绍如何利用Python的xlrd、xlwt和xlutils库组合,实现向已存在的Excel文件中写入新数据并保留原有格式的方法。核心步骤包括使用xlrd打开文件时设置formatting_info=True,通过xlutils.copy复制工作簿,最后使用xlwt进行写入并保存。

在Python中,通常使用xlrd库读取Excel文件,使用xlwt库写入新的Excel文件。然而,若要将数据追加或修改到已存在的Excel文件中,同时保留原有格式,则需要引入xlutils库进行配合处理。

具体实现思路如下:

首先,利用xlrd.open_workbook函数打开目标已有的xls或xlsx文件。

关键点在于,调用open_workbook时必须添加参数formatting_info=True。这一设置确保程序能够读取并保留原文件中的单元格格式信息,为后续写入操作奠定基础。

接着,导入from xlutils.copy import copy模块。使用该copy函数,将上一步中由xlrd打开的Book对象作为输入,拷贝生成一个新的xlwt Workbook对象。这一步实现了从读取模式到写入模式的转换。

此时,获得的xlwt Workbook对象即可按照标准写入流程进行操作:

通过Workbook对象的get_sheet方法获取对应的Sheet对象。获取Sheet后,即可调用其write方法,向指定的单元格写入新的数据内容。

完成所有数据的写入操作后,调用Workbook对象的save方法,将更改保存到文件中。

以下是完整的代码示例:

import xlrd
import os
from xlutils.copy import copy
from xlwt import Style

def writeExcel(row, col, str, styl=Style.default_style):
 rb = xlrd.open_workbook(file, formatting_info=True)
 wb = copy(rb)
 ws = wb.get_sheet(0)
 ws.write(row, col, str, styl)
 wb.save(file)

style = xlwt.easyxf('font:height 240, color-index red, bold on;align: wrap on, vert centre, horiz center');
writeExcel(1, 1, 'hello world', style) 

若需确保Excel原有的格式(如字体、颜色等)不被覆盖,必须在打开文件时添加formatting_info=True参数。

formatting_info=True

若需为写入的数据添加特定的Excel样式,可通过xlwt.easyxf函数定义样式字符串,并将其作为参数传入写入函数中。

关于合并单元格的操作:

ws.write_merge(top_row, bottom_row, left_column, right_column, string)

以上内容即为Python写入已存在Excel数据并保留格式的完整实例,希望能对读者有所帮助。欢迎参考并在实践中尝试,也期待大家的支持与反馈。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。