系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
- 这个系列讲讲Python对Excel的操作
- 今天讲讲win32com模块对已有Excel文件的操作:单元格增加底色
Part 1:示例说明
- 示例工作表第1行数据,如果数据大于5,则单元格底色涂为红色
原数据

程序运行后

Part 2:代码
import os
import win32com
from win32com.client import constants as c # 旨在直接使用VBA常数
current_address = os.path.abspath('.')
excel_address = os.path.join(current_address, "示例.xlsx")
print(current_address)
xl_app = win32com.client.gencache.EnsureDispatch("Excel.Application") # 若想引用常数的话使用此法调用Excel
xl_app.Visible = False # 是否显示Excel文件
wb = xl_app.Workbooks.Open(excel_address)
sht = wb.Worksheets(1)
sht.Name = "示例"
max_col = sht.Cells(1, sht.Columns.Count).End(c.xlToLeft).Column
for j in range(1, max_col+1):
print(j)
cells_value = sht.Cells(1, j).Value
if cells_value > 5:
sht.Cells(1, j).Interior.Pattern = c.xlSolid
sht.Cells(1, j).Interior.PatternColorIndex = c.xlAutomatic
sht.Cells(1, j).Interior.Color = 255
sht.Cells(1, j).Interior.TintAndShade = 0
sht.Cells(1, j).Interior.PatternTintAndShade = 0
wb.Save()
wb.Close()
代码截图

Part 3:部分代码解读
-
max_col = sht.Cells(1, sht.Columns.Count).End(c.xlToLeft).Column
获取最大列,用法上与VBA
一样,只是在常数前加了一个c。 -
sht.Cells(1, j).Interior.Color = 255
,如果需要更换颜色,请在Excel使用录制宏功能,看一下不同颜色数值
本文为原创作品,欢迎分享朋友圈
常按图片识别二维码,关注本公众号
Python 优雅 帅气

网友评论