7个版本
0.2.0 | 2023年1月21日 |
---|---|
0.1.5 | 2022年10月9日 |
0.1.4 | 2022年8月27日 |
0.1.2 | 2022年7月30日 |
#2006 在 数据库接口
1,239 星 & 10 关注者
200KB
5.5K SLoC
包含 (ZIP文件,6KB) tests/abcdef_colnames.xlsx,(ZIP文件,5KB) tests/abcdef.xlsx
XLite - 将Excel (.xlsx, .xls) 和Open Document电子表格 (.ods) 作为SQLite虚拟表查询
XLite 是一个用Rust编写的SQLite扩展。这个库的主要目的是允许从SQLite中处理电子表格,将其作为 虚拟表 暴露。
下载
以下预构建库可用于 下载
Linux | Windows | MacOS | |
---|---|---|---|
x86 | libxlite.so.tar.gz️ | xlite.dll.zip️ | N/A |
x86-64 | libxlite.so.tar.gz️ | xlite.dll.zip️ | libxlite.dylib.zip |
AArch64 (ARM64) | libxlite.so.tar.gz️ | libxlite.dylib.zip |
这一步将生成 libxlite.so
或 libxlite.dylib
或 xlite.dll
,具体取决于您的操作系统。
如何使用
假设您已安装sqlite3命令行工具,当前目录下有 libxlite
库和磁盘上的某些电子表格文件,您可以加载此扩展
sqlite3 # will open SQLite CLI
> .load libxlite # or "xlite" on Windows
这将加载 xlite
模块,现在可以使用它来创建虚拟表。
创建虚拟表(本示例使用测试目录下的.xlsx文件)
CREATE VIRTUAL TABLE test_data USING xlite (
FILENAME './tests/abcdef_colnames.xlsx',
WORKSHEET 'Sheet1',
RANGE 'A2:F', -- optional
COLNAMES '1' -- optional
);
说明:此语句将根据名为"Sheet1"的工作表创建虚拟表。
可选的RANGE
参数在此处用于跳过表中的第一行。A2:F
的含义是use columns from A to F but start from 2nd row
。
查询
SELECT A, B, C, D, E, F FROM test_data;
列名根据它们在电子表格中的名称(索引)命名,除非提供了可选的COLNAMES
参数 - 在这种情况下,列名将来自由此选项指定的电子表格中的行。
SELECT COUNT(*), D FROM test_data GROUP BY D ORDER BY COUNT(*);
只要虚拟表机制支持,就可以在电子表格上执行SQLite支持的所有操作。
删除
DROP TABLE test_data;
此语句将仅删除虚拟表。物理文件不会被删除。
如何构建
cargo build --release
限制
目前不支持INSERT
、UPDATE
和DELETE
语句。
关于
此项目是实验性的,并且作为一项业余爱好项目在我业余时间开发和维护。
依赖项
~7MB
~191K SLoC