xlwings对excel操作,最忌讳的是对单元格进行遍历,效率太慢。我曾经试过10w个excle单元格,遍历下来起码1h以上,已经失去了数据处理的意义。

本文章介绍python对excle设置条件格式,使用xlwings。

一、要用到xiwings和win32com。如果没有先安装:

pip install xlwings

pip install pywin32

二、代码部分:

1. import 必要模块,并设置xlwings:

import xlwings as xw
import win32com as win32c   # pip install pywin32""" 设置xlwings"""
app=xw.App(visible=True,add_book=False)
app.display_alerts = False
app.screen_updating = False

2. 读取excle的某个区域,后面会对这个区域(代码中是A1:J10)进行设置条件格式:

""" 读取excel中的某个区域,后续会对这个区域设置条件格式"""
filepath=r'D:\Program Files (x86)\Geany1_34\project\conditon_format.xlsx'
wb=app.books.open(filepath)
ws0=wb.sheets[0]
rng0=ws0.range((1,1),(10,10))

3. 设置条件格式的代码:

1)对介于2个数之间的单元格填充颜色:关键字xlBetween。 代码中的corlor值等属性可以在excel录制宏来获取。对各位大拿们想必不是问题。patterncolorindex和Tintandshade是设置单元格的其他格式,此处我并需要。

# 条件格式: 介于2个数之间
formula1 = '=3'
formula2 = '=8'
rng0.api.FormatConditions.Add(win32c.client.constants.xlCellValue, win32c.client.constants.xlBetween, formula1, formula2)
rng0.api.FormatConditions(rng0.api.FormatConditions.Count).SetFirstPriority()
rng0.api.FormatConditions(1).Interior.Color = 5296274
#rng0.api.FormatConditions(1).Interior.PatternColorIndex = -4105
#rng0.api.FormatConditions(1).Font.TintAndShade = 0

2)对大于某个数的单元格填充颜色:关键字xlGreater。

# 条件格式: 大于某个数
formula4 = '=3'
rng0.api.FormatConditions.Add(win32c.client.constants.xlCellValue, win32c.client.constants.xlGreater, formula4)
rng0.api.FormatConditions(rng0.api.FormatConditions.Count).SetFirstPriority()
rng0.api.FormatConditions(1).Interior.Color = 5296274
#rng0.api.FormatConditions(1).Interior.PatternColorIndex = -4105
#rng0.api.FormatConditions(1).Font.TintAndShade = 0

3)对小于某个数的单元格填充颜色:关键字xlLess。

# 条件格式: 小于某个数
formula5 = '=8'
rng0.api.FormatConditions.Add(win32c.client.constants.xlCellValue, win32c.client.constants.xlLess, formula5)
rng0.api.FormatConditions(rng0.api.FormatConditions.Count).SetFirstPriority()
rng0.api.FormatConditions(1).Interior.Color = 5296274
#rng0.api.FormatConditions(1).Interior.PatternColorIndex = -4105
#rng0.api.FormatConditions(1).Font.TintAndShade = 0

4)对等于某个字符串的单元格填充颜色:关键字xlEqual。 有时会对字符串表格设置条件格式。

如下代码是对单元格字符串是"P" (实际单元格内容是P,没有引号)的填充颜色。注意到formula中P要加上双引号,代表是一个字符。

formula3 = '="P"'
rng0.api.FormatConditions.Add(win32c.client.constants.xlCellValue, win32c.client.constants.xlEqual, formula3)
rng0.api.FormatConditions(rng0.api.FormatConditions.Count).SetFirstPriority()
rng0.api.FormatConditions(1).Interior.Color = 255
#rng0.api.FormatConditions(1).Interior.PatternColorIndex = -4105
#rng0.api.FormatConditions(1).Font.TintAndShade = 0

4. 保存,退出:

# 保持并退出
wb.save()
wb.close()
app.quit()

在此感谢作者pingfanren022的文章:

使用xlwings的api.FormatConditions设置单元格条件格式_pingfanren022的博客-CSDN博客_xlwings 单元格格式

xlwings对excle文档设置条件格式相关推荐

  1. eclipse设置文档注释的格式

    eclipse设置文档注释的格式

  2. Python-docx 模块读写 Word 文档基础(一):创建文档、段落格式、字体格式设置方法

    Python-docx 模块读写 Word 文档基础(一):创建文档.段落格式.字体格式设置方法 前言: 1.创建 Word 文档及基础用法: 2.段落格式设置: 3.字体格式设置: 结尾: [Pyt ...

  3. .NET操作WORD文档另存为其他格式的文件

    刚在研究研究怎么可以在.NET程序中把WORD文档另存为XPS文件,学习了一些概念和操作,马上记录下来吧,进入正题. 1. 添加与WORD互操作的类库,里面包含着WORD对象模型的.NET表示: 一看 ...

  4. html语言创建无序列表的标记是,【HTML】 三、文档设置标记

    HTML标记语言 三.文档设置标记 1. 格式标记 1) 强制换行标记 让后面的文字.图片.表格等等,显示在下一行 2) 换段落标记 换段落,由于多个空格和回车在HTML中会被等效为一个空格,所以HT ...

  5. 导出word文档生成docx格式 添加水印

    为了导出docx格式看了等多文档,最后做个总结依赖包用到dom4j和freemarker,最为方便. <!-- https://mvnrepository.com/artifact/freema ...

  6. java : word,excel,img,ppt各种文档转换pdf格式以流方式

    前提: 面对各种文件转换pdf格式,我下面写的都是一些方法,其中每个方法都以流的方式进行参数的传递. 通过猿友的帮忙,修改了部分jar包,解决excel转换pdf导致的水印问题~ 源码链接:https ...

  7. 如何批量将 Word 文档转为 HTML 格式

    概要:HTML 的全称为超文本标记语言,是一种标记语言.我们可以将所需要表达的信息按某种规则写成 HTML 文件,这样可以通过专用的软件来识别,比如常用的浏览器.这些软件可以将这些 HTML 文件&q ...

  8. 一篇让你搞定word文档毕业论文/书籍格式

    今天我们来看一篇超级实惠的文章,想必最近又有一大波同学为了论文格式而发愁吧,还有一些需要整理书籍的格式都让人特别烦躁,这不,最近一位博士小姐姐整理一篇文章,让我们一起来喵喵. 原文地址https:// ...

  9. 如何批量将 Word 文档转为 ePub 格式

    概要:ePub 是一个自由的开放标准,属于一种可以"自动重新编排"的内容,也就是文字内容可以根据阅读设备的特性,以最适于阅读的方式显示,所以现在主流的电子书基本都是 ePub 的. ...

  10. 将PDF文件转换为Word文档和其他格式

    Most of us know easy ways to turn a Word or other text document into a PDF, but what if we need to c ...

最新文章

  1. 稍等片刻 正在提取文件_三亚种子罐市场价,中药提取浓缩设备的价格
  2. 进程与线程的一个简单解释
  3. 【一起玩光剑】光剑第二期:新建GitHub上传OTA初始程序
  4. Android在一个APP中通过包名或类名启动另一个APP
  5. 存储Tensorflow训练网络的参数
  6. 图解抖音推荐算法(布局抖音短视频的可以参考)
  7. 代码编辑器sublime text 4130 for Mac
  8. 37. 错误与异常处理(1)
  9. nginx trac mysql svn_linux下nginx+svn
  10. 黑站利器-中国菜刀的功能介绍和使用方法
  11. HIVE的基本使用05(HSQL调优)
  12. windows和linux的icmp包,linux和windows下icmp的区别
  13. 寒假每日一题 2 : 干草堆 java
  14. 作为一本书,“卷”赢竞争对手的最佳姿势是?
  15. “decompose“没有适用于“ts“目标对象的方法
  16. 使用openfeign调用报错java.io.IOException: too many bytes written,以及调用过程中参数传递为空等问题
  17. 论文中稿 IEEE ACCESS 期刊
  18. 跟着我从零开始入门FPGA(一周入门系列)第七天
  19. 性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇
  20. 2017百度世界大会 爱奇艺创始人CEO龚宇演讲速记

热门文章

  1. 有趣的开源软件:语音识别工具Kaldi (一)
  2. 调用高德API实现数据可视化
  3. SRTF最短剩余时间优先调度C语言实现
  4. VS 2010 与 VS 2008的区别
  5. Oracle脏读处理方式
  6. 老外网络语言缩写总结
  7. 基于Halcon的高精度圆拟合算法思路
  8. Unity Shader 内置函数
  9. 解决Ubuntu远程连接mysql连不上的问题
  10. 第三部分 数据结构 -- 第二章 队列-1362:家庭问题(family)