转自:https://blog.csdn.net/weixin_37356900/article/details/92759471

已解决】python 使用xlrd,xlwt 修改execl单元格的背景色

【解决过程】
之前查百度,问同事,一直没找到满意的答案,后来找到了几篇不相干的文章,自己整理整理,理解理解,总算是理出了令自己比较满意的答案:

分两种情况:
一、 原execl 表格中的数据不改变,只改变需要改变的单元格的背景

import xlrd
from xlutils.copy import copy
import xlwt# 第一步  把原表格中的数据拷贝一份
path = 'E:\\测试文件\\test.xls'
book = xlrd.open_workbook(path)
#  book = xlrd.open_workbook(path, formatting_info=True)
#  设置 formatting_info=True ,当打开表格是保存表格原有的样式,进行保存时,
#  原来的样式不会丢失
sheet = book.sheets()[0]
wb = copy(book)
ws = wb.get_sheet(0)# 第二步  设置样式
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 5         # 5 背景颜色为黄色
#1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon,
# 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Graystyle = xlwt.XFStyle()
style.pattern = pattern# 第三步  写入数据并保存
ws.write(1, 1, '苹果', style)    #  顺序为 row, column, value, style
ws.write(1, 2, '南瓜', style)
ws.write(1, 3, '猫头鹰', style)
ws.write(2, 2, '', style)           # 单元格数据为空,背景为黄色
# value会覆盖原单元格的数据,如果不想被覆盖了,需提前把原单元格的数据获取到再写入
wb.save(path)# 开始时的样式
![原始数据](https://img-blog.csdnimg.cn/2019061800041589.PNG)# 运行后的样式
![背景色改变](https://img-blog.csdnimg.cn/20190618000519842.PNG)
``
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

二、新建一个工作薄,写入数据后再保存到指定的表格中
如果原表格中有数据,那么数据会丢失
如果是空白表格,则不会影响结果

# 第一步
wb = xlwt.Workbook()
ws = wb.add_sheet("大千世界")    # 大千世界 为sheet名,可自行定义# 第二步,第三步同上
# 运行结果
![其他数据丢失](https://img-blog.csdnimg.cn/20190618001936853.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzM1NjkwMA==,size_16,color_FFFFFF,t_70)
# 其他数据已丢失
# 可以通过修改 wb.save(path) 里面的  path 来改变保存的位置,原表格的数据就不会丢失了
#  sheet 的名称也改过来了
![修改了sheet名称](https://img-blog.csdnimg.cn/20190618002444933.PNG)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

三、在循环中灵活控制是否添加背景色(隔行变色)

将第二步中的
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
改为:
pattern.pattern = xlwt.Pattern.NO_PATTERN
其他地方不变,依然不会添加背景色
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

四、添加背景色导致单元格边框消失

【解决办法】
方法一、灵活控制是否添加背景色
方法二、添加表格样式

添加表格样式
在上述第三步,设置样式的地方添加表格的样式
borders = xlwt.Borders()       # Create bordersborders.left = xlwt.Borders.MEDIUM    # 添加边框-虚线边框
borders.right = xlwt.Borders.MEDIUM
borders.top = xlwt.Borders.MEDIUM
borders.bottom = xlwt.Borders.MEDIUM  borders.left_colour = 0x90            # 边框上色
borders.right_colour = 0x90
borders.top_colour = 0x90
borders.bottom_colour = 0x90style = xlwt.XFStyle()               # Create style
style.borders = borders              # Add borders to style

xlrd-操作excel 背景颜色-转载相关推荐

  1. Python中xlrd操作excel单元格

    学习目标 Python中xlrd操作excel单元格 学习内容 1.获取工作表 sheet=data.sheet_by_index(0) 2.返回单元格对象 sheet.cell(1,2) #返回第二 ...

  2. QT 操作excel 类封装(转载)

    QT 操作excel 类封装(转载) 原链接:http://blog.csdn.net/liliming1234/article/details/7054941 pro file [plain]  v ...

  3. python xlrd使用_python使用xlrd 操作Excel读写

    原博文 2016-07-12 15:00 − 此文章非本人 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了pyt ...

  4. linux下面安装Matlab2017b、快捷键修改、修改背景颜色(转载+自己整理)

    环境: Ubuntu 18.10 Matlab2017b 下载地址: 链接: https://pan.baidu.com/s/1wLBTp7zXPiK8Y-vJZ6Vzhg 密码: 6w8c 别担心速 ...

  5. python修改excel背景色,基于python的excel背景颜色控制

    我想能够在excel中控制背景单元格的颜色.我有大量的数据,我需要确定数据是否符合预期.我已经可以用Python完成了.但是,我想在excel中显示这些数据,为了便于阅读,我想根据数据的好坏给单元格上 ...

  6. 360极速浏览器一键操作 订单速记表selenium +requests爬取 openpyxl +xlrd 操作excel

    #coding:utf-8 #配置前先将谷歌的chromedriver放到 360浏览器的目录下 from selenium.webdriver.common.by import By #引入判断元素 ...

  7. 淘宝卖家订单速记表selenium +requests爬取 openpyxl +xlrd 操作excel

    首先登陆淘宝获取cookie import os import easygui as g from selenium import webdriver import requests import j ...

  8. python xlwt模块使用_Python使用xlwt模块 操作Excel文件(转载)

    导出Excel文件 1. 使用xlwt模块 import xlwt import xlwt # 导入xlwt # 新建一个excel文件 file = xlwt.Workbook() #注意这里的Wo ...

  9. 最全整理!Python 操作 Excel 库 xlrd与xlwt 常用操作详解!

    来源/早起Python 在之前的Python办公自动化系列文章中,我们已经相信介绍了openyxl.xlsxwriter等Python操作Excel库. 相信大家对于几个库的差异与使用场景有了一定的认 ...

最新文章

  1. DBCC CHECKIDENT
  2. 快速排序算法C#实现
  3. Kotlin实战指南七:单例模式
  4. linux 分布式 程序管理,linux--------------git分布式系统项目管理(1)
  5. python人工智能——机器学习——分类算法-k近邻算法——kaggle案例: Facebook V: Predicting Check Ins
  6. 常搓八个部位可以防衰老 - 健康程序员,至尚生活!
  7. 性能优化实战|使用eBPF代替iptables优化服务网格数据面性能
  8. Adobe illustrator 调整画板大小 - 连载17
  9. 爬虫.之登陆及动态网页的抓取
  10. 练习算法之前必须了解的多件事
  11. 数据科学研究的现状与趋势全解
  12. 推鹿是什么?推鹿介绍,推鹿是什么平台?
  13. npm/package.json/package-lock.json文件
  14. linux编译poco静态库,Xcode 编译poco c++静态库
  15. 爬取北京市公交线路信息
  16. html模拟终端,DomTerm:一款为Linux打造的终端模拟器
  17. 湖西大学计算机专业排名,韩国留学热门的30个专业
  18. 金蝶云苍穹开发实用整理
  19. 2023最新大数据毕设题目推荐100例
  20. PHP图片压缩到指定的大小

热门文章

  1. 统御项目管理软件(oKit )重大版本更新
  2. 为什么不同的计算机有不同的IP地址,我的电脑的IP地址和网上显示的为什么不一样 – 手机爱问...
  3. vue项目结构php写哪里,怎样使用vuex项目结构目录与配置
  4. vue3.0 php,使用Vue3.0收获的知识点(一)
  5. [Android] [音视频系列]在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件
  6. 综合设计——基于STC15W4K32S4(第三部分)
  7. word 2010中设置默认粘贴为 只保留文本粘贴
  8. excel好久没rkw,记录下
  9. luckysheet打印按钮功能实现,及重写getScreenshotNew打印截图支持插入图片及图表
  10. kettle通过命令行参数传递数据库连接信息