Excel activate()方法不使用';t在分配时以xlwings格式返回激活的工作表
我正在编写一个程序,使用Excel activate()方法不使用';t在分配时以xlwings格式返回激活的工作表,excel,python-3.x,xlwings,Excel,Python 3.x,Xlwings,我正在编写一个程序,使用python3.5和xlwings 0.10.0将Excel(.xlsx)文件转换为json文件。一切都很好,除了我在尝试添加一个在工作表上迭代的选项时遇到了问题 import xlwings as xw wb = xw.Book('myfile.xlsx') for s in wb.sheets: sheet = s.activate() print(sheet.range(1, 1)) 这个简化的代码片段总结了我的问题。 在xlwings中,说明a
python3.5
和xlwings 0.10.0
将Excel(.xlsx)文件转换为json文件。一切都很好,除了我在尝试添加一个在工作表上迭代的选项时遇到了问题
import xlwings as xw
wb = xw.Book('myfile.xlsx')
for s in wb.sheets:
sheet = s.activate()
print(sheet.range(1, 1))
这个简化的代码片段总结了我的问题。
在xlwings
中,说明activate()
方法激活并返回工作表。按照该逻辑,我希望sheet=s.activate()
将当前迭代和激活的工作表分配给变量sheet
。然而,当执行最后一行时,它抛出一个AttributeError:“NoneType”对象没有属性“range”
错误(sheet
返回None而不是激活的工作表)
对我有效的是将工作表激活和分配分开:
import xlwings as xw
wb = xw.Book('myfile.xlsx')
for s in wb.sheets:
s.activate()
sheet = s
print(sheet.range(1, 1))
我想找出为什么第一个片段不起作用,而第二个片段起作用
如果我忽略了一些我应该知道的基本问题,请随意指出,因为我对开发还很陌生。这是一个bug报告,而不是一个经典的stackoverflow问题,我在这里提出了一个问题:我不确定该怎么做,因为我可能遗漏了一些东西。非常感谢。