How to ask a local AI model about your CSV or Excel data
Pasting a spreadsheet into ChatGPT gets you an answer fast. It also hands your data to someone else. A local AI model is an open-weight LLM running on your own GPU. It gives you most of the same convenience, and your data stays put. Here’s how it works in the browser and how to get good answers out of it.
What “local AI model” means here
NoEgress runs open-weight models like Qwen 2.5, Llama 3.2, and Gemma 2 through WebLLM, which uses WebGPU to run them on your graphics card. The model downloads once into your browser cache. That’s about 1 GB for the smallest and about 5 GB for the largest. After that it works offline.
No API key, no provider, no bill. Everything runs in a web worker inside your tab.
The model writes SQL, DuckDB does the math
Small language models are bad at arithmetic, so the assistant doesn’t do any. It gets the table schema, some column stats, and a few sample rows, then writes a DuckDB query. DuckDB runs that query over the whole file and gives you an exact answer.
That’s why you can trust the number. It came from SQL you can read and edit, not from a model guessing at totals over rows it never saw.
-- "Which three regions grew revenue the most this year?"
SELECT
region,
SUM(revenue) FILTER (WHERE year = 2026)
- SUM(revenue) FILTER (WHERE year = 2025) AS growth
FROM orders
GROUP BY region
ORDER BY growth DESC
LIMIT 3;Choosing a model
Start with Qwen 2.5 3B, the default. It loads quickly and writes solid SQL. If your GPU has the memory, Qwen 2.5 7B or Llama 3.1 8B handle harder, multi-step questions better. On an older laptop, Llama 3.2 1B still manages simple lookups.
Getting better answers
Use column names as they appear in the file, and say what you want measured. "Sum of revenue by region" beats "how are we doing?" If a query fails, ask the assistant to fix it. It gets the error message along with the SQL.
Check the Data Profile first. If a number column came in as text, no model will add it up correctly until you cast it.
Local AI vs ChatGPT for spreadsheets
A hosted model is bigger and writes better prose. A local one is private, free, and works offline. It’s also allowed on data your company won’t let you paste into a third-party service. For turning a question into a query over a table you already have, a 3B to 8B model is usually plenty.
Frequently asked
Can I use AI on my spreadsheet without uploading it?
Yes. NoEgress runs an open-weight LLM in your browser through WebGPU. The model sees the schema, some stats, and a few sample rows. It writes SQL, and DuckDB runs it on your machine. Nothing goes to OpenAI or anyone else.
What do I need to run a local AI model in the browser?
A browser with WebGPU, which means a recent Chrome or Edge on most desktops and laptops. You also need enough GPU memory for the model you pick, roughly 1 to 5 GB. Without WebGPU the SQL workbench still works. You just don’t get the assistant.
Which local LLMs are supported?
Qwen 2.5 (3B and 7B), Llama 3.1 8B, Llama 3.2 (1B and 3B), and Gemma 2 2B. All of them are quantized to run in the browser through WebLLM.
More guides
How to query a CSV file with SQL
How to open large CSV files Excel can't handle
How to run SQL on an Excel spreadsheet
How to analyze confidential data without uploading it
How to compare two CSV files and find what changed
Data quality checks to run before trusting a dataset
How to query a JSON file with SQL
DuckDB online: run DuckDB in your browser with nothing to install