【已解决】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)
``

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

# 第一步
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)

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

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

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

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

添加表格样式
在上述第三步,设置样式的地方添加表格的样式
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

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

  1. Python基于xlrd模块处理合并单元格

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接:好看站 http://www.nrso.net/ 目的: python能使用xlrd模块实现对Excel数据的读 ...

  2. python合并单元格居中_Python基于xlrd模块处理合并单元格

    目的: python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 总体思路: (1)要想实现对Excel数据的读取,需要用到第三方应用,直接应用. (2)实际操作时候和我们实际 ...

  3. python 读取合并单元格的数据_Python使用xlrd实现读取合并单元格

    合并单元格 操作方法: 1.使用xlrd自带属性:merged_cells # 获取表格中所有合并单元格位置,以列表形式返回 (起始行,结束行,起始列,结束列) merged = sheet.merg ...

  4. python中 xlrd/xlwt模块详解

    python中 xlrd/xlwt模块详解 1.什么是xlrd模块 python操作excel主要用到xlrd和xlwt两个库,即xlrd是读excel,xlwt是写excel库 一.安装xlrd模块 ...

  5. “解决Python软件包安装问题 - 修改pip源地址“

    "解决Python软件包安装问题 - 修改pip源地址" 在使用Python开发中,我们经常需要安装各种各样的第三方库,而 pip 就是 Python 软件包的安装和管理工具.但是 ...

  6. 已解决Python调用免费申请的百度图形识别接口案例

    已解决Python调用免费申请的百度图形识别接口{'error_code': 18, 'error_msg': 'Open api qps request limit reached'} 文章目录 报 ...

  7. 已解决python selenium模块自动化操作谷歌浏览器点击元素失效问题解决(亲测有效)

    已解决python selenium模块自动化操作浏览器点击元素,抛出异常selenium.common.exceptions.ElementClickInterceptedException: Me ...

  8. 已解决Python向数据库插入数据的字符串中含有单引号或双引号报错

    已解决Python向数据库插入数据的字符串中含有单引号或双引号报错:(102, b"Incorrect syntax near 'S'.DB-Lib error message 20018, ...

  9. python 设置excel单元格式,Python xlwt设置excel单元格字体及格式

    Python xlwt设置excel单元格字体及格式 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python xlwt设置excel单元格字体及格式.txt  ...

最新文章

  1. 02- Image Terminology
  2. ubuntu apache php mysql phpmyadmin_Ubuntu下Apache+PHP+MySQL+phpMyAdmin的快速安装步骤
  3. how is SAP OData metadata read from CDS view via SADL
  4. PHP array_count_values() 函数用于统计数组中所有值出现的次数。
  5. 微信小程序视频弹幕效果
  6. 表单隐藏域与display:none
  7. fig,ax = plt.subplots()
  8. 目标描述(基于边界的描述)
  9. android 混音 源码,FFmpegAndroid android 端基于 FFmpeg 实现音频剪切、拼接、转码、混音、编解码;视频剪切、水印、截图、转码、编 @codeKK c开源站...
  10. 电路板的信号完整性问题及原因
  11. tt桌球瞄准器手机版_传闻老任将进军手机市场?任天堂独立直面会将于周四凌晨举行...
  12. presto安装及使用 1
  13. 使用预计算实时全局光照优化照明-设置场景
  14. iOS ApplePay paymentData 加解密 (待续)
  15. mysql数据库误删后能恢复吗_浅谈数据库误删除恢复
  16. 计算机应用软件安装不了,应用程序无法正常启动,详细教您电脑应用程序无法正常启动0xc000007b怎么解决...
  17. OTL:通用数据库连接模板
  18. Android 使用MediaRecorder录音调用stop()方法的时候报错
  19. 【ELT.ZIP】OpenHarmony啃论文俱乐部——计算机视觉数据压缩应用
  20. scp传输文件时指定端口

热门文章

  1. exsi rh2288hv5 驱动_华为RH2288H服务器引导ServiceCD安装Windows Server操作系统
  2. 晶圆激光切割工艺流程
  3. 第八届中国大学计算机设计大赛,2015年(第八届)中国大学生计算机设计大赛.PDF...
  4. # GIT团队实战博客
  5. 计算机主机电池馈电,电脑主板电池没电了表现 电脑主板电池没电了解决方法【详解】...
  6. 前言 金融大叔的梦想
  7. 披荆斩棘,蜕变从来学吧这里开始
  8. 计算机英语朗读音频,新课标小学英语阅读精选(MP3+中英字幕) 第72期:电脑
  9. 基于linux2.6.30.4内核的DM9000网卡驱动编译成模块成功ping通
  10. 浪尖聊聊大数据从业者的迷茫及解决方案