我有一个包含三张表的Excel文件,使用duckdb如何将所有表读取到一个数据框中?
通常我使用空间扩展来用一张纸读取Excel文件,它工作得很好,这是我的读取Excel的代码。
import duckdb
import polars as pl
# Create a connection to DuckDB
conn = duckdb.connect()
# Install and load the spatial extension
conn.execute("INSTALL spatial;")
conn.execute("LOAD spatial;")
result = conn.execute("""
SELECT * FROM st_read('AccountNumber.xlsx',open_options = ['HEADERS=FORCE']);
""").pl()
result
如果您知道工作表名称,则可以将其作为
layer
参数传递,并使用 union all
组合工作表:
stmt = [f"""
select *
from st_read(
'AccountNumber.xlsx',
open_options = ['HEADERS=FORCE'],
layer='{x}'
)""" for x in ["Sheet1","Sheet2"]]
stmt = " union all ".join(stmt)
duckdb.sql(stmt).pl()