Duckdb处理excel文件

duckdb通过xlsx扩展读写excel文件,但是不支持xls格式。

具体可以参考

https://duckdb.org/docs/stable/guides/file_formats/excel_import

https://duckdb.org/docs/stable/guides/file_formats/excel_export

常用测试例子:

使用duckdb cli工具

将PG的数据导入到excel中, 并进行查询

bash 复制代码
D install excel;
D load excel;
D load postgres;
D attach 'dbname=test user=sde  host=192.168.100.138 port=15432 password=sde' as db_138 (type postgres);
D install spatial;
100% ▕████████████████████████████████████████████████████████████▏
D load spatial;

D use db_138;
D desc sde.poly100w;
┌───────────────────┬─────────────┬─────────┬─────────┬─────────┬─────────┐
│    column_name    │ column_type │  null   │   key   │ default │  extra  │
│      varchar      │   varchar   │ varchar │ varchar │ varchar │ varchar │
├───────────────────┼─────────────┼─────────┼─────────┼─────────┼─────────┤
│ objectid          │ INTEGER     │ NO      │ NULL    │ NULL    │ NULL    │
│ globalid          │ VARCHAR     │ NO      │ NULL    │ NULL    │ NULL    │
│ gdb_geomattr_data │ BLOB        │ YES     │ NULL    │ NULL    │ NULL    │
│ shape             │ WKB_BLOB    │ YES     │ NULL    │ NULL    │ NULL    │
└───────────────────┴─────────────┴─────────┴─────────┴─────────┴─────────┘

//导出PG的数据到excel中,如果不添加header true参数,默认的列名就是excel的ABC
D copy (select  objectid,globalid ,st_astext(st_geomfromwkb(shape)) as shape from sde.poly100w where objectid<100000) to 'd:\testdata\poly100w.xlsx' with (format xlsx, header true);
100% ▕██████████

D desc 'd:\testdata\poly100w.xlsx';
┌─────────────┬─────────────┬─────────┬─────────┬─────────┬─────────┐
│ column_name │ column_type │  null   │   key   │ default │  extra  │
│   varchar   │   varchar   │ varchar │ varchar │ varchar │ varchar │
├─────────────┼─────────────┼─────────┼─────────┼─────────┼─────────┤
│ objectid    │ DOUBLE      │ YES     │ NULL    │ NULL    │ NULL    │
│ globalid    │ VARCHAR     │ YES     │ NULL    │ NULL    │ NULL    │
│ shape       │ VARCHAR     │ YES     │ NULL    │ NULL    │ NULL    │
└─────────────┴─────────────┴─────────┴─────────┴─────────┴─────────┘
D. select count(*) from  'd:\testdata\poly100w.xlsx';
┌──────────────┐
│ count_star() │
│    int64     │
├──────────────┤
│    99999     │
└──────────────┘
D select * from  'd:\testdata\poly100w.xlsx' limit 10;
┌──────────┬──────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ objectid │       globalid       │                                                              shape                                                              │
│  double  │       varchar        │                                                             varchar                                                             │
├──────────┼──────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│  98360.0 │ {D129177B-5E52-421...  │ POLYGON ((12688677.066300001 3865181.7490999997, 12688688.3625 3865076.065899998, 12688583.533100002 3865073.3708999977, 1268...  │
│  98466.0 │ {3413B0C5-E98B-479...  │ POLYGON ((12697590.1551 3863978.001500003, 12697633.098000001 3863935.4504999965, 12697798.0141 3863765.105700001, 12697651.0...  │
│  98651.0 │ {0F601B4F-FF1B-4EE...  │ POLYGON ((12709117.552900001 3863746.023000002, 12709169.8501 3863744.161799997, 12709173.301399998 3863675.2202999964, 12709...  │
│  99346.0 │ {FC8BF0E7-EB78-44A...  │ POLYGON ((12692961.9012 3856284.8486, 12692982.372699998 3856270.5195999965, 12692992.7927 3856243.449500002, 12692973.375 38...  │
│  99493.0 │ {CCEA6B22-F16A-498...  │ POLYGON ((12714997.444899999 3853805.3486, 12715014.8473 3853790.789499998, 12714969.657200001 3853685.560800001, 12714890.27...  │
│   3773.0 │ {301CE043-1817-48F...  │ POLYGON ((12747156.4666 4009515.5439999998, 12747169.690200001 4009196.7392000034, 12747056.355300002 4009205.1523, 12746904....  │
│   4461.0 │ {584AC5F1-3FAB-4AB...  │ POLYGON ((12733425.3941 4008538.2321999967, 12733489.849100001 4008532.240699999, 12733523.4998 4008529.8894999996, 12733514....  │
│  10709.0 │ {3F5CC3EA-3A33-4FA...  │ POLYGON ((12543096.1985 4173395.0402000025, 12543088.8365 4173349.466600001, 12542896.941300001 4173385.060800001, 12542913.1...  │
│     23.0 │ {D83E5605-F6B7-40F...  │ POLYGON ((12760458.550099999 4025626.905000001, 12760463.1026 4025435.9645000026, 12760244.9599 4025431.1538999975, 12760237....  │
│    274.0 │ {C8D08E5E-5101-4F8...  │ POLYGON ((12751593.3737 4023026.188199997, 12751625.061700001 4023026.530699998, 12751650.2465 4023012.7128000036, 12751650.7...  │
├──────────┴──────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 10 rows                                                                                                                                                 3 columns │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
相关推荐
SunkingYang24 分钟前
Excel斜线表头怎么做?合并单元格后添加对角线+两侧输入文字,新手也能秒会!
excel·office·单元格·斜线表头·对角线·输入文字·两边
用户298698530141 天前
C#: 高效移动与删除Excel工作表
后端·.net·excel
缺点内向2 天前
Java: 如何在Excel中添加或删除分页符?
java·excel
不想上班的小吕2 天前
SAP EXCEL模板下载导入
excel·sap
向日葵同志443302 天前
使用@univerjs纯前端渲染excel, 显示图片、链接、样式
前端·react.js·excel
Smile_2542204182 天前
nodered 下载 excel 文件
node.js·excel
办公解码器2 天前
Excel怎么检测录入身份信息的准确性?
excel
CodeCraft Studio2 天前
国产化Excel处理控件Spire.XLS教程:如何使用 Java 将 TXT 文本转换为 Excel 表格
java·word·excel·spire·文档格式转换·txt转excel
测试老哥3 天前
python+requests+excel 接口测试
自动化测试·软件测试·python·测试工具·测试用例·excel·接口测试
屹奕3 天前
基于EasyExcel实现Excel导出功能
java·开发语言·spring boot·excel