Python使用xlwt和xlrd实现Excel指定条件行着色
本文介绍如何利用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行添加颜色的完整分享,希望能为读者提供参考,欢迎继续支持本站内容。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









