使用duckdb通过Sheets读取excel文件

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

我有一个包含三张表的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
data-analysis duckdb
1个回答
0
投票

如果您知道工作表名称,则可以将其作为

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()
© www.soinside.com 2019 - 2024. All rights reserved.