activate()方法在分配时不会在xlwings中返回激活的工作表

时间:2017-03-08 12:25:07

标签: excel python-3.x xlwings

我正在编写一个程序,使用Python 3.5xlwings 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 documentation中,声明activate()方法激活工作表返回它。遵循该逻辑,我希望sheet = s.activate()将当前迭代和激活的工作表分配给变量sheet。但是在执行最后一行时会抛出AttributeError: 'NoneType' object has no attribute '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))

我想知道为什么第一个片段不起作用而第二个片段不起作用。

如果我忽略了一些我应该知道的基本内容,请随意指出,因为我对发展很陌生。

0 个答案:

没有答案