AttributeError: module 'xlwings' has no attribute 'load'

AttributeError: module 'xlwings' has no attribute 'load'

我在 Windows 10,Python 3.8.5,xlwings-0.23.0

我正在尝试将 Excel 中的 selected 范围的单元格加载到 Pandas DataFrame 中。 我正在关注以下文档: https://docs.xlwings.org/en/stable/api.html#xlwings.load

xlwings.load(index=1, header=1)

将活动工作簿的 selected 单元格加载到 pandas DataFrame 中。如果您 select 具有相邻单元格的单个单元格,则范围会自动扩展并变成 pandas DataFrame。如果您没有安装 pandas,它 returns 值作为嵌套列表。

参数: index (bool or int, default 1) – 定义左侧的列数,这些列将变成 DataFrame 的索引

header (bool or int, default 1) – 定义顶部的行数,这些行数将变成 DataFrame 的列

例子

import xlwings as xw
xw.load()

我的脚本已通过此命令select编辑了相关单元格:

wb.sheets['myTab'].range('C5').expand().select()

我现在正在尝试将这些单元格加载到 Pandas DataFrame:

df = xw.load()

我收到此错误消息: AttributeError: 模块 'xlwings' 没有属性 'load'

也尝试过:

wb = xw.Book(strMyExcelFile)
wb.sheets[strTab].activate()
df = wb.load()

在那种情况下,错误消息是:AttributeError: 'Book' object has no attribute 'load'

有人对如何将 selected 单元格传递到 Pandas DataFrame 有什么建议吗?

案例已通过以下解决方案解决:

打开 Excel 文件和 select 目标选项卡。

wb = xw.Book(strMyExcelFile)
wb.sheets[strMyTab].activate()

关键问题 #1:需要定义要在下游使用的 selected 单元格的范围。

Select 一个起始单元格,在本例中为 C5,以及所有相邻单元格。

cellRange = sheet.range('C5').expand()

严重问题 #2:将 selected 范围内的数据分配到 Pandas DataFrame。

这是我之前试图解决的问题,但问题 #1 是 pre-requisite。 Excel 文件中的第一行是 headers.

df = wb.sheets[strMyTab].range(cellRange).options(pd.DataFrame, index=False, header=True).value

关闭 Excel 文件而不保存。

wb.close()

注意:感谢此处收到的建议 https://github.com/xlwings/xlwings/issues/1555