openpyxl 读出 excel table 并将其传递给 pandas DataFrame

openpyxl read out excel table and pass it to a pandas DataFrame

我想用 xlwings 将 excel tables (*) 的内容读入 pandas DataFrames。

我知道: 关于: openpyxl.worksheet.table 模块

此类模块提供了一系列用于创建和修改 excel table 的功能,但我不知道如何简单地将 table 传递到 DataFrame 中,我也不知道知道这是否真的可行(即我不认为有一种方法可以将 xlwings 对象读入 Pandas)

有什么想法吗?

注意事项: 1) 请注意我说的是 tables 而不是 sheets。(我知道 pd.read_excel('name.xlsx', sheetname='Sheet1')

2) 我也知道一种解决方法是在阅读 sheet 时跳过行或列,这对我来说是行不通的。我需要引用一个命名为 table.

3) 非 excel 用户经常误解 Excel 中的 table 是什么。 table 是一个命名范围(您可以转到 INSERT 选项卡,您会看到 "Table")。该对象在 VBA 中被称为 Listobject。所以 table 不是 excel 中的简单范围,也不是命名范围,它不仅如此,它实际上是 pandas 数据框的 excel 版本。

你试过xlwings模块的内置转换器了吗?他们似乎有预建函数可以转换为 Pandas DataFrame as well as a Pandas Series.

xlwings Documentation

这是他们给出的简单示例:

>>> sht = xw.Book().sheets[0]
>>> df = sht.range('A1:D5').options(pd.DataFrame, header=2).value
>>> df
    a     b
    c  d  e
ix
10  1  2  3
20  4  5  6
30  7  8  9