pandas 属性错误:模块'xlwings'没有属性'load'

nlejzf6q  于 2023-06-04  发布在  其他
关注(0)|答案(2)|浏览(218)

我在Windows 10,Python 3.8.5,xlwings-0.23.0上
我正在尝试将Excel中选定的单元格范围加载到Pandas DataFrame中。我正在跟踪以下文档:https://docs.xlwings.org/en/stable/api.html#xlwings.load

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

将活动工作簿的选定单元格加载到pandas DataFrame中。如果您选择一个具有相邻单元格的单元格,则范围将自动扩展并转换为pandas DataFrame。如果您没有安装pandas,它将以嵌套列表的形式返回值。
参数:index (bool or int, default 1)-定义将转换为DataFrame索引的左侧列的数量
header (bool or int, default 1)-定义将转换为DataFrame列的顶部行数
示例

import xlwings as xw
xw.load()

我的脚本通过以下命令选择了相关单元格:

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

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

df = xw.load()

我收到此错误消息:属性错误:模块“xlwings”没有属性“load”
还尝试:

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

在这种情况下,错误消息为:属性错误:“Book”对象没有属性“load”
有没有人对如何将选定的单元格传递到Pandas DataFrame有任何建议?

ppcbkaq5

ppcbkaq51#

采用以下解决方案解决了该病例:
打开Excel文件并选择目标选项卡。

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

关键问题#1:需要定义要在下游使用的选定单元格的范围。
选择起始单元格(本例中为C5)和所有相邻单元格。

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

关键问题#2:将选定范围中的数据分配到Pandas DataFrame中。
这是我之前试图解决的问题,但问题1是先决条件。Excel文件中的第一行是标题。

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

关闭Excel文件而不保存它。

wb.close()

注:由于此处收到的建议而产生的学分https://github.com/xlwings/xlwings/issues/1555

jdg4fx2g

jdg4fx2g2#

解决方案是不要将Python文件命名为与该Python文件中导入的任何模块相同的名称。
我从这个https://geektechstuff.com/2020/06/13/attributeerror-partially-initialized-module-has-no-attribute-python/中弄明白了

相关问题