XLWINGS:如何构造省略部分列的单元格引用读取不连续区域
xlwings非连续单元格区域引用构造方法
你当前使用的workSheet.range('A2:B2', 'D2:E2')写法不符合xlwings的非连续区域构造规则:当你给range()方法传入两个独立的区域参数时,xlwings会将两个区域的对角顶点作为边界,生成两者之间的连续矩形区域,而非拼接两个不连续区域。
正确实现有两种常用方案:
方案1:单字符串逗号分隔写法
将所有需要引用的不连续区域用英文逗号拼接,放在同一个字符串参数内传入range方法,适合区域数量少、写法固定的场景:
# 直接读取非连续区域的值 res = workSheet.range('A2:B2,D2:E2').value
方案2:使用union方法拼接区域
如果需要拼接的区域是动态生成的,可以先分别定义单个区域,再用xlwings的union方法合并:
import xlwings as xw # 分别定义两个独立区域 rng1 = workSheet.range('A2:B2') rng2 = workSheet.range('D2:E2') # 合并为非连续区域 combined_rng = xw.union(rng1, rng2) # 读取合并区域的值 res = combined_rng.value
内容的提问来源于stack exchange,提问作者KJA
相关产品推荐
相关产品推荐

