Python使用xlwt和xlrd实现Excel指定条件行着色

叶初
叶初
发布时间:2026-10-12 | 2人浏览过
原创

本文介绍如何利用Python的xlrd读取Excel文件,结合xlutils.copy复制工作簿,并通过xlwt设置单元格样式实现指定条件行的颜色标记。通过判断列值并写入带背景色的样式,完成Excel数据的可视化高亮处理,适用于需要批量标记特定数据场景。

首先,使用xlrd库读取Excel文件,获取对应的book对象a。

从book对象中提取指定的sheet页,得到xlrd对象。

利用xlutils库的copy方法,将对象a复制生成新的工作簿对象b。

遍历对象a中的列值,根据判断条件修改对象b中对应单元格的内容或样式。

最后保存对象b,生成带有颜色标记的结果文件。

此前曾尝试直接使用xlwt操作sheetwork对象来实现指定行着色,但因技术限制未能找到合适方案。最终采用先读取再复制的方法,因为workbook对象能直接获取行数和列操作权限,便于筛选关键字。上述代码仅为演示示例,该方法存在局限:例如将dataframe导出到Excel后,缺乏直接给指定列添加颜色的便捷方法,需先保存至本地再读取处理,步骤较为繁琐。目前尚未发现sheetwork直接转换为workbook的简便途径,仍需进一步探索。

补充知识:Python如何对Excel中满足特定值的单元格进行着色处理。

具体效果展示如下。

实现代码如下。

import xlwt
import xlrd
from xlutils.copy import copy
#创建execl
def create_execl(file_name):
 wb = xlwt.Workbook()
 ws = wb.add_sheet('Info')
 ws.write(0, 0, "1")
 ws.write(1, 0, "2")
 ws.write(2, 0, "3")
 ws.write(3, 0, "2")
 wb.save(file_name)
#单元格上色
def color_execl(file_name):
 styleBlueBkg = xlwt.easyxf('pattern: pattern solid, fore_colour red;') # 红色
 rb = xlrd.open_workbook(file_name)  #打开t.xls文件
 ro = rb.sheets()[0]      #读取表单0
 wb = copy(rb)       #利用xlutils.copy下的copy函数复制
 ws = wb.get_sheet(0)     #获取表单0
 col = 0         #指定修改的列
 for i in range(ro.nrows):    #循环所有的行
  result = int(ro.cell(i, col).value)
  if result == 2:      #判断是否等于2
   ws.write(i,col,ro.cell(i, col).value,styleBlueBkg)
 wb.save(file_name)
 
if __name__ == '__main__':
 file_name = 't.xls'
 create_execl(file_name)
 color_execl(file_name)

以上即为Python利用xlwt和xlrd实现指定条件给Excel行添加颜色的完整分享,希望能为读者提供参考,欢迎继续支持本站内容。

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表