使用xlwings workbook.names.add()创建Excel命名区域出现多余引号问题
解决xlwings 0.30.14在Excel 2016中创建命名区域时出现多余引号的问题
问题根源:用字符串拼接引用地址时,xlwings会把未明确标记为公式的字符串判定为文本内容,自动添加外层双引号包裹。
两种可行解决方式:
直接传递xlwings Range对象(推荐)
不用手动拼接地址字符串,直接传入工作表的range对象,xlwings会自动生成正确的引用格式:workbook.names.add(name, ws.range(range_address))这种方式完全规避手动拼接的格式问题,兼容性最优。
正确拼接公式格式的字符串
若必须用字符串形式,要确保传递的是完整公式引用(以等号开头,sheet名含特殊字符时用单引号包裹),不要额外加外层引号:workbook.names.add(name, f"='{ws.name}'!{range_address}")生成的命名区域会直接是
='sheet1'!$C$22:$AL$999,不会出现多余的外层双引号。
验证:用上述方法后,查看Excel命名管理器,生成的引用格式和手动创建的一致,无需额外手动修改。
内容的提问来源于stack exchange,提问作者buren
相关产品推荐
相关产品推荐

