当前位置: 首页 > news >正文

自动化办公|通过xlwings进行excel格式设置

1. 介绍

xlwings 是一个强大的 Python 库,可以用来操作 Excel,包括设置单元格格式、调整行高列宽、应用条件格式以及使用内置样式。本文将详细介绍如何使用 xlwings 进行 Excel 格式化操作,并附带代码示例。

2. 基础格式设置(字体、颜色、边框)

2.1 设置字体和颜色

import xlwings as xw

wb = xw.Book('example.xlsx')
sht = wb.sheets['Sheet1']

# 设置单元格字体和颜色
rng = sht.range('A1:C3')
rng.font.name = '微软雅黑'  # 字体
rng.font.size = 12         # 字号
rng.font.color = (255, 0, 0)  # 字体颜色 (RGB)
rng.api.Font.Bold = True   # 加粗

# 设置背景色
rng.color = (255, 255, 0)  # 黄色背景

2.2 设置边框

# 设置边框
border = rng.api.Borders
border.LineStyle = 1  # 实线
border.Weight = 2     # 中等粗细
rng.api.Borders(9).LineStyle = 1  # 下边框 (9对应Excel常量xlEdgeBottom)

3. 调整行高和列宽

# 调整行高和列宽
sht.range('A1').row_height = 25    # 设置第1行高度
sht.range('A1').column_width = 15  # 设置A列宽度

# 自动调整行高列宽
sht.range('A1:C10').autofit()      # 自动调整行高和列宽
sht.autofit('columns')             # 仅自动调整列宽

4. 应用条件格式

4.1 高亮大于100的单元格

cf_range = sht.range('D1:D10')
cf = cf_range.api.FormatConditions.Add(
    Type=2,  # xlCellValue
    Operator=5,  # xlGreater
    Formula1="100"
)
cf.Font.Color = 0xFF0000  # 红色字体
cf.Interior.Color = 0xFFFF00  # 黄色背景

4.2 使用数据条(Data Bars)

cf_range.api.FormatConditions.AddDatabar()
data_bar = cf_range.api.FormatConditions(1)
data_bar.BarColor.Color = 0x00B050  # 绿色数据条

5. 使用内置样式

# 应用Excel内置样式
sht.range('A1').style = 'Good'     # 绿色背景
sht.range('B1').style = 'Bad'      # 红色背景
sht.range('C1').style = 'Neutral'  # 黄色背景

# 自定义样式
style_name = 'CustomStyle'
if style_name not in [s.Name for s in wb.api.Styles]:
    style = wb.api.Styles.Add(style_name)
    style.Font.Bold = True
    style.Interior.Color = 0x00FF00
sht.range('D1').style = style_name

6. 完整示例

import xlwings as xw

wb = xw.Book()
sht = wb.sheets[0]

# 填充测试数据
sht.range('A1').value = [[10, 200], [150, 50]]

# 格式设置
rng = sht.range('A1:B2')
rng.font.name = 'Calibri'
rng.font.size = 12
rng.column_width = 15

# 条件格式
cf = rng.api.FormatConditions.Add(
    Type=2, Operator=5, Formula1="100"
)
cf.Interior.Color = 0x00FF00

# 保存
wb.save('formatted.xlsx')
wb.close()

7. 注意事项

  • 颜色可使用 RGB 元组 (R, G, B) 或十六进制值(需转换为整数)。

  • 部分高级功能需通过 .api 调用 Excel VBA 对象模型。

相关文章:

  • 防火墙综合实验
  • ✨1.HTML、CSS 和 JavaScript 是什么?
  • 深度学习笔记——LSTM
  • 自动化测试框架搭建-单次接口执行-三部曲
  • 深入理解 fnmatch 函数的实现
  • 04 redis数据类型
  • 《DeepSeek赋能工业互联网:解锁数据深度分析新姿势》
  • python常用库整理
  • 【实用技巧】云服务器+FRP搭建自己的远程控制向日葵
  • 最简单的难题——游戏英雄升级潜力评估
  • Flutter 跳转后不允许返回
  • 习题系列——数值分析与数值计算
  • el-table树状表格,默认展开第一个节点的每一层
  • 基因研究的“北极盲区”
  • 浏览器开发者工具(F12)查看请求的响应体内容显示”无法加载响应数据: No resource with given identifier found“
  • Linux网络 | 多路转接Reactor
  • HTB—OnlyHacks
  • 利用大模型deepseek搭建本地知识库并且实现 java 调用
  • DRF框架中viewsets.ModelViewSet、APIView区别与联系
  • 八大元素定位
  • 洗冤录|县令遇豪强:黄榦处理的一起地产纠纷案
  • 央行:中国政府债务扩张仍有可持续性
  • 中国词学研究会原会长、华东师大教授马兴荣逝世,享年101岁
  • 海南省三亚市委原常委、秘书长黄兴武被“双开”
  • 乡村快递取件“跑腿费”屡禁不止?云南元江县公布举报电话
  • 韩正出席庆祝中国欧盟建交50周年招待会并致辞