CLI tool to convert Excel and CSV files to DuckDB
Project description
Sheetless
Sheetless is a command-line tool that helps you escape the spreadsheet swamp.
It loads .csv and .xlsx files into a DuckDB database, so you can explore your data using pure SQL — without writing a line of Python.
Think of it as your bridge from Excel to SQL based analytics.
Features
🔄 Convert CSV and Excel files to DuckDB tables
📁 Supports directories and wildcards
📊 Handles multi-sheet Excel files
🧠 Generates safe table names automatically
🧹 One command, clean results
Installation
Install it directly from PyPI:
pip install sheetless
Quick Start
Convert a single CSV file into a DuckDB database:
sheetless convert --path data.csv --duckdb mydata.duckdb
Convert all Excel files in a directory:
sheetless convert --path "data/*.xlsx" --duckdb warehouse.duckdb
Load a specific sheet from an Excel file:
sheetless convert --path report.xlsx --sheet "Q2 Sales" --duckdb insights.duckdb
If no table name is given, one is generated from the file and sheet name.
Options
--path: Path to file, folder, or wildcard pattern (e.g. *.csv)
--duckdb: DuckDB file to use or create
--table: (Optional) Custom table name (only works for single file/sheet)
--sheet: (Optional) Sheet name to load from an Excel file
Why Sheetless?
Because if you’re stuck in Excel, SQL is freedom. Sheetless makes it one CLI command away.
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sheetless-0.1.2.tar.gz.
File metadata
- Download URL: sheetless-0.1.2.tar.gz
- Upload date:
- Size: 3.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27c1ad7015d60a0c80a96afd92949f28e31770bb833aa79b15d0c672a5d478ec
|
|
| MD5 |
a5f98de77c31f03af8cdb2a03b387135
|
|
| BLAKE2b-256 |
5ffafeb257f4cf0ab285dff4d7490fb22604e5f1ef5df78c11b399d70fa3b70b
|
Provenance
The following attestation bundles were made for sheetless-0.1.2.tar.gz:
Publisher:
publish.yml on georgoulis/sheetless
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sheetless-0.1.2.tar.gz -
Subject digest:
27c1ad7015d60a0c80a96afd92949f28e31770bb833aa79b15d0c672a5d478ec - Sigstore transparency entry: 211234846
- Sigstore integration time:
-
Permalink:
georgoulis/sheetless@4a69269c960d8871b1c385e3fa4db6bee5f6c31d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/georgoulis
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4a69269c960d8871b1c385e3fa4db6bee5f6c31d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sheetless-0.1.2-py3-none-any.whl.
File metadata
- Download URL: sheetless-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c682706f4e85d7563f20f7b190252c486736e31427fc2de4ba406ddbe45ee694
|
|
| MD5 |
67288fcef1e5953adda66ba6ae2851e5
|
|
| BLAKE2b-256 |
3bdd5bed22c84d21c4483d6d877c4c9c3495332fba91d1b7666a7423751ab522
|
Provenance
The following attestation bundles were made for sheetless-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on georgoulis/sheetless
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sheetless-0.1.2-py3-none-any.whl -
Subject digest:
c682706f4e85d7563f20f7b190252c486736e31427fc2de4ba406ddbe45ee694 - Sigstore transparency entry: 211234847
- Sigstore integration time:
-
Permalink:
georgoulis/sheetless@4a69269c960d8871b1c385e3fa4db6bee5f6c31d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/georgoulis
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4a69269c960d8871b1c385e3fa4db6bee5f6c31d -
Trigger Event:
release
-
Statement type: