【问题标题】:AttributeError: module 'xlwings' has no attribute 'load'AttributeError: 模块 'xlwings' 没有属性 'load'
【发布时间】:2021-07-05 07:15:51
【问题描述】:

我使用的是 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()

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

也试过了:

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

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

请问有人对如何将选定的单元格传递到 Pandas DataFrame 有任何建议吗?

【问题讨论】:

    标签: excel pandas xlwings


    【解决方案1】:

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

    打开 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

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 2019-08-29
      • 2017-05-02
      • 2019-07-04
      • 2018-04-14
      • 2019-02-18
      • 1970-01-01
      • 2020-01-01
      • 2021-08-20
      相关资源
      最近更新 更多