SQL query engine for spreadsheet files, built in Rust.
QuerySheets lets you query .xlsx files with SQL syntax from the CLI and from a desktop app (Tauri).
- Rust multi-crate architecture (
core,adapters,query,cli) - Excel adapter isolated via
calamine - SQL support with filtering, joins, aggregation, ordering, and pagination
- Interactive session mode for repeated queries over files/folders
- Export to CSV, JSON, and JSONL
- Optional desktop app: QuerySheets Studio
SELECT, wildcard (*), aliases (AS), and arithmetic expressionsCAST(expression AS type)in projections and aggregate expressionsWHEREwith=,!=,>,<,>=,<=,LIKE,NOT LIKE,AND,ORIN,NOT IN,EXISTS, and scalar subquery flows used by testsINNER JOIN,LEFT JOIN,RIGHT JOINwith alias supportGROUP BYwith:COUNT(*)COUNT(column)SUM(column)AVG(column)STDDEV(column)MIN(column)MAX(column)
ORDER BY(ASC/DESC,NULLS FIRST/NULLS LAST, positional ordering)LIMITandOFFSET- Optional case-sensitive string comparison via
--case-sensitive-strings
querycommand for one-shot executionsessioncommand for interactive querying- Session supports file mode and folder mode (
FROM <file>.<worksheet>) - Header output via
--header - Export output via
--output(.csv,.json,.jsonl)
- Open spreadsheet folders and inspect available workbooks/tables
- SQL editor experience with run controls
- Results table with pagination and refresh flows
- Uses the same Rust query engine as the CLI
Customers query (docs/queries/clients.sql):
SELECT
c.name,
a.city,
a.state,
ct.email
FROM clients.customers c
JOIN clients.addresses a ON c.customer_id = a.customer_id
JOIN clients.contacts ct ON c.customer_id = ct.customer_id
LIMIT 20Products query (docs/queries/products.sql):
SELECT
p.product_name,
c.category_name,
p.price
FROM products.products p
JOIN products.categories c ON p.category_id = c.category_id
LIMIT 20- Install Rust using rustup:
winget install Rustlang.Rustup- Install Node.js LTS:
winget install OpenJS.NodeJS.LTS- Install Microsoft Visual C++ Build Tools (required for Rust native builds):
winget install Microsoft.VisualStudio.2022.BuildTools- Clone and install dependencies:
git clone https://github.com/obraia/QuerySheets.git
cd QuerySheets
cd apps/query-sheets-studio
npm install
cd ../..If you are installing from a GitHub Release artifact, check Running Unsigned macOS Builds for first-run Gatekeeper steps.
- Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh- Install Node.js LTS (example with Homebrew):
brew install node- Clone and install dependencies:
git clone https://github.com/obraia/QuerySheets.git
cd QuerySheets/apps/query-sheets-studio
npm install
cd ../..- Install build prerequisites (example for Debian/Ubuntu):
sudo apt update
sudo apt install -y build-essential pkg-config libssl-dev curl git- Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh- Install Node.js LTS:
sudo apt install -y nodejs npm- Clone and install dependencies:
git clone https://github.com/obraia/QuerySheets.git
cd QuerySheets/apps/query-sheets-studio
npm install
cd ../..From repository root:
cargo check
cargo buildCLI help:
cargo run -p query-sheets-cli -- --helpRun a one-shot query:
cargo run -p query-sheets-cli -- query \
--file ./docs/sheets/customers.xlsx \
--sql "SELECT name FROM customers" \
--headerSession mode:
cargo run -p query-sheets-cli -- session --path ./docs/sheets --headerDesktop app (Tauri):
cd apps/query-sheets-studio
npm install
npm run tauri:devDesktop app build:
cd apps/query-sheets-studio
npm run tauri:buildIf you downloaded the .dmg from Releases and macOS shows a warning like "app is damaged" or blocks opening, it is usually Gatekeeper quarantine on a non-notarized build.
- Remove quarantine from the downloaded
.dmg:
xattr -dr com.apple.quarantine ~/Downloads/QuerySheets*.dmg-
Install the app to
/Applications. -
Remove quarantine from the installed app:
xattr -dr com.apple.quarantine "/Applications/QuerySheets Studio.app"- Open the app for the first time:
open "/Applications/QuerySheets Studio.app"If needed, use Finder and choose Right click -> Open on first launch.
/apps
/query-sheets-studio
/crates
/core
/adapters
/query
/cli
/docs
/images
/queries
/sheets
- SQL parser foundation: https://github.com/apache/datafusion-sqlparser-rs
- Excel reader adapter: https://github.com/tafia/calamine
See LICENSE.



