You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何将Excel XLSX文件导入DuckDB并指定某列数据类型

解决DuckDB导入Excel时指定列类型的问题

可以通过DuckDB的read_xlsx函数的types参数实现需求——指定特定列为VARCHAR类型,其余列保持自动推断:

两种实现方式

1. 已知目标列名时

如果知道报错的E列的列名(比如假设列名为TimeZone),直接在types参数中指定该列的类型:

CREATE TABLE tblVLANs AS 
SELECT * FROM read_xlsx(
    'C:\VLANs.xlsx',
    types = {'TimeZone': 'VARCHAR'}
);

2. 仅知道列位置时

如果不清楚列名,可通过列的位置索引(E列是第5列,索引从1开始)指定:

CREATE TABLE tblVLANs AS 
SELECT * FROM read_xlsx(
    'C:\VLANs.xlsx',
    types = {5: 'VARCHAR'}
);

原理说明

types参数允许你为单个或多个列强制指定数据类型,未被指定的列会继续由DuckDB自动推断适配的类型,这样就能避免因某列存在混合数据类型(比如数值和字符串)导致的解析错误。

内容的提问来源于stack exchange,提问作者Planet-9

火山引擎 最新活动