xlwings python 读取excel数据失败

问题描述 投票:0回答:1

我正在尝试此代码,因为它可以使用打开的 Excel 工作簿读取数据。

import xlwings as xw

xlsfile = r'C:\Users\matth\OneDrive\Dokumente\20241023-1904097928-umsatz.xlsx'
workbook = xw.Book(xlsfile)
ws = workbook.sheets[4]
tbl = ws.api.ListObjects(1) # or .ListObjects(1)
rng = ws.range(tbl.range.address) # get range from table address
df = rng.options(pd.DataFrame, header=True).value # load range to dataframe

此代码现在运行了 10 分钟,消耗了超过 1 GB 的内存。 Excel 被冻结。要加载的表包含大约 2500 行。数据不多,应该可以在 < 1s.

中加载

出了什么问题?

python excel memory xlwings
1个回答
0
投票

您的代码可能会挂在“rng”选择上,这是不必要的。

试试这个;
注意

ws.tables[0].name
将从范围中排除表格标题。
ws.tables[0].range
将包括整个表格和标题。

import xlwings as xw
import pandas as pd


xlsfile = r'C:\Users\matth\OneDrive\Dokumente\20241023-1904097928-umsatz.xlsx'
workbook = xw.Book(xlsfile)
ws = workbook.sheets[4]

### Create Dataframe
df = ws.range(ws.tables[0].name).options(pd.DataFrame, index=False, header=1).value
df = ws.range(ws.tables[0].range).options(pd.DataFrame, index=False, header=1).value

print(df)
© www.soinside.com 2019 - 2024. All rights reserved.