使用Python的xlwings设置Excel边框颜色时代码卡顿问题求助
xlwings设置边框颜色卡顿的原因及解决办法
- 颜色格式不匹配:xlwings通过
api调用的是Excel的COM接口,该接口的Color属性不接受#ffffff这类十六进制字符串,它要求传入RGB整数(比如白色对应的数值是16777215)。传入字符串会导致COM接口内部进行无效的格式解析,这是卡顿的核心原因。 - 重复获取COM对象:两次单独调用
cells.api.Borders(11)会重复创建或获取COM实例,虽然不是卡顿的主要诱因,但会额外增加系统开销。
修正后的代码示例
import xlwings as xw sheet = xw.sheets[0] cells = sheet.range((2,2),(2,6)) # 先获取边框对象,避免重复调用COM接口 target_border = cells.api.Borders(11) target_border.Weight = 3 # 使用RGB整数赋值颜色 target_border.Color = 16777215 # 也可以通过xlwings的常量工具转换RGB值 # target_border.Color = xw.constants.RGB(255, 255, 255)
如果习惯用十六进制字符串,可自行转换为RGB整数:
def hex_to_rgb(hex_color): hex_color = hex_color.strip('#') return int(hex_color, 16) target_border.Color = hex_to_rgb('#ffffff')
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

