You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用xlwings清除Excel(xlsm)内容后,如何保留原有条件格式?

解决xlwings清除内容后保留条件格式的问题

xlwings的clear()方法会清除单元格的所有内容和格式(包括条件格式),这就是你丢失原有格式的原因。要保留条件格式,你需要只清除单元格的值和公式,而非格式,用clear_contents()方法即可。

具体实现代码示例

import xlwings as xw
import pandas as pd

# 打开启用宏的工作簿
wb = xw.Book("目标文件.xlsm")
sheet = wb.sheets["需要操作的工作表名"]

# 只清除已使用区域的内容,保留所有格式(含条件格式)
sheet.used_range.clear_contents()

# 加载DataFrame到工作表(从A1开始)
df = pd.DataFrame({"列1": [1,2,3], "列2": ["a","b","c"]})
sheet.range("A1").value = df

关键说明

  • used_range会自动识别工作表中包含数据的区域,避免清除空白单元格的格式(如果有的话)。如果需要指定固定范围,直接写sheet.range("A1:Z1000").clear_contents()即可。
  • clear_contents()对应Excel手动操作里的「清除内容」选项,只会移除单元格的数值、公式,完全保留条件格式、单元格填充色、边框、字体等所有格式设置。
  • 即使工作表中有合并单元格,这个方法也不会破坏合并结构,只会清除合并单元格内的内容。

内容的提问来源于stack exchange,提问作者GBilianis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:12:03