- data
- analysis
- project-management
How to analyze an Excel or CSV file with AI without coding
Upload the spreadsheet, ask in plain language, and the AI writes and runs the analysis code for you: tables, downloadable charts and a new Excel file with the results. You only verify.
Analyzing a spreadsheet with AI without coding has one condition most chats do not meet: the AI has to run code on the file instead of estimating the answer by reading the table. A language model that "looks at" 12,000 rows and says the total is 4.2 million is guessing; one that runs df["revenue"].sum() is calculating. The difference shows when the number goes into a report.
What does an AI tool need to analyze data well?
An environment to run code. BrainBox runs Python in an isolated environment with pandas, numpy, scipy, scikit-learn and statsmodels for analysis, and matplotlib, seaborn and plotly for charts. Your file is loaded there as is, and the code operates on the real rows.
The result has to be a file when you need one. A chart inside the chat is for looking; the report needs the PNG, and the next step needs the Excel file with the new column. The interpreter writes output files (PNG, XLSX, CSV, PDF, DOCX) that stay downloadable and can be saved to the Box.
The data has to come with context. When you upload a CSV, BrainBox generates an automatic exploratory report (rows, columns, types, missing values, minimums, maximums, means, sample) that the AI uses to understand the sheet before writing a line. An Excel file with several sheets is indexed sheet by sheet, and the citation points to the source sheet.
BrainBox is an AI workspace for documents that answers with citations to the exact page. With data, the citation is the sheet and the code that produced the result.
How do you analyze the sheet, step by step?
Upload the CSV or Excel file to the Box
Drag the file in. A CSV gets an exploratory report right away; an Excel file is indexed per sheet. Both are ready to query once the status switches to Indexed.
Switch on Agent mode
The code interpreter is only used in Agent mode, the one that can plan steps, execute and correct itself. In RAG mode the AI reads the sheet but runs nothing.
Ask a simple first question
"How many rows does it have and which columns?" or "summarize the revenue column by region". It confirms the AI read headers, separators and dates correctly before you ask for anything complex.
Ask for the analysis with the output you want
Be concrete about the output: "bar chart of sales by month, and a table with the top 10 customers". If you want the file, say so: "generate an Excel file with one sheet per region".
Check one number against the sheet
Take a figure from the result (one region's total, the month with the most sales) and compare it with a quick filter in the original Excel file. If it matches, the rest of the analysis uses the same rows.
Keep what it generated
Output files appear in the chat for download. Ask it to index them in the Box if you want them to stay as a source for future questions.
What does an analysis look like in the chat?
A project manager uploads the quarter's hours export and asks:
Using hours_Q3.xlsx: hours by project and by month, a bar chart, and a table with the three projects that deviated most from their hours budget (Budget sheet).
I loaded both sheets: Entries (8,412 rows, July to September) and Budget (14 projects). I joined them on project code.
| Project | Budget (h) | Actual (h) | Deviation |
|---|---|---|---|
| PRJ-031 ERP migration | 640 | 912 | +42.5% |
| PRJ-027 Customer portal | 480 | 611 | +27.3% |
| PRJ-044 Internal audit | 200 | 238 | +19.0% |
Bar chart of hours by project and month: hours_by_project_q3.png
Excel file with the full join and one sheet per month: deviations_q3.xlsx
Five rows in Entries have no project code (0.06%); I excluded them from the join and listed them in the No code sheet.
The last two paragraphs are what make the analysis trustworthy: it says how many rows it used, how it joined the sheets and what it excluded. If a number does not match what you expected, the explanation of the steps is the first place to look, and the code the second.
What can the code interpreter do with your data?
| Task | How to ask | What you get |
|---|---|---|
| Summary of a sheet | "Describe the columns and the missing values" | Table with types, missing values, minimums, maximums, means |
| Group and total | "Sales by region and month" | Table in the chat and, on request, an XLSX |
| Join two sheets or two files | "Join sales with the customer master on ID" | Joined table with unmatched rows listed separately |
| Charts | "Line chart of monthly revenue" | Interactive chart in the chat or downloadable PNG |
| Cleaning | "Normalize dates and remove duplicates" | New CSV or XLSX with the changes documented |
| Statistics | "Is there a correlation between discount and margin?" | Coefficient, scatter plot and explanation |
| Report | "Make a one-page PDF with the three charts" | Designed, downloadable PDF |
What are the limits?
| Aspect | Detail |
|---|---|
| Formats | CSV, XLSX, XLS, XLSB, JSON, delimited text |
| Excel with several sheets | Indexed sheet by sheet; the citation points to the sheet |
| Time per run | Maximum 2 minutes; the environment pauses after a few idle minutes |
| Libraries | pandas, numpy, scipy, scikit-learn, statsmodels, matplotlib, seaborn, plotly, openpyxl, xlsxwriter |
| Interactive charts | Line, scatter, bar, pie, box |
| Outputs | PNG, XLSX, CSV, PDF, DOCX, downloadable and saveable to the Box |
| Mode | Agent mode only; the capability can be switched off per Box |
| Cost | Intelligence units according to the agent's work; more than a simple reading question |
How is this different from uploading the Excel file to ChatGPT?
ChatGPT and Claude also run code on uploaded files, and for a one-off analysis they work well. The differences show up when the data lives alongside documents and a team.
| General chat with data analysis | BrainBox | |
|---|---|---|
| Data + documents | The Excel file goes alone | The Excel file sits in the same Box as the contract, the report and the meeting, and one question can cross them |
| After the analysis | Generated files are lost when the chat closes | Saved in the Box, indexed, kept as a source |
| Team | Everyone uploads their own copy | One shared Box with roles; everyone asks about the same file |
| Control | The user decides everything | The admin can switch off the code interpreter in confidential Boxes |
| Citation | The file name | Source sheet, and generated files with a link |
For sheets with sensitive data, the code capability is switched off per Box from its settings, and the files remain queryable in read mode.
For project managers, the typical case is the hours or tasks export turned into a progress report with the follow-up meeting next to it. For compliance, it is the controls matrix in Excel crossed with the policy that requires it. For research, it is the study's dataset analyzed next to the papers that interpret it.
Show me the code you used for the join.
This is the join step, on the sheets already loaded:
merged = entries.merge(budget, on="project_code", how="left", indicator=True)
no_code = merged[merged["_merge"] == "left_only"]
hours = merged.groupby(["project_code", "month"])["hours"].sum().unstack(fill_value=0)
The 5 unmatched rows are the ones in the No code sheet.
Each run has a 2-minute cap; a 100,000-row sheet with a join and three charts fits with room to spare.
Frequently asked questions
- Does the AI really calculate, or does it just read the table and estimate?
- It calculates. With Agent mode on, BrainBox runs Python code (pandas, numpy, scipy) on the real file in an isolated environment. A sum over 12,000 rows is done with code, not by reading the sheet's text. You can ask to see the code it ran.
- Which data formats does it accept?
- CSV, Excel (.xlsx, .xls, .xlsb) with several sheets, JSON and delimited text files. When you upload a CSV, BrainBox also generates an automatic exploratory report: rows, columns, missing values, minimums, maximums, means and a data sample.
- What kinds of charts can it make?
- Interactive line, scatter, bar, pie and box charts right in the chat, and static charts with matplotlib, seaborn or plotly that download as PNG or get embedded in a PDF.
- Can I get a new Excel file with the results?
- Yes. Ask it to write the result as a file and the interpreter produces an .xlsx (with openpyxl or xlsxwriter), a CSV, a PDF or a Word document. It shows up as a downloadable file in the chat and you can save it to the Box.
- Are there size or time limits?
- Each run has a maximum of 2 minutes. For sheets with hundreds of thousands of rows, ask for the analysis in parts or filter first. The environment pauses after a few idle minutes, so in a long conversation the AI may reload the file.
- Do I need to know Python to review what it did?
- No. Ask it to explain each step in plain language and to show the intermediate numbers (rows used, filters applied). If you want to see the code, it shows it; if not, you can check the result against a column in the original sheet.
Written by
BrainBox Team
Document intelligence, by ExaByte Company
We build BrainBox — the platform teams use to ask questions across their own documents and get answers with exact page citations.
Keep reading
How to ask AI for a report and get a designed PDF or PowerPoint
With your documents in a Box, you ask for the report, the deck or the memo, and the AI writes it from the sources and delivers it as a designed file: cover, tables, charts and citations. Download it, review it and fix it in the same chat.
How to ask AI about several case files at once without mixing them up
Connect the Boxes you need to cross-reference, choose whether the whole Box or only some folders come in, and ask. Every citation says which Box and which page it came from, and each project's files stay where they were.
How to compare two versions of a contract with AI and catch every change
Mention both versions, ask for the table of differences, and verify each change on its page. Works for renegotiated contracts, tender documents with addenda, thesis drafts and any document that has passed through several hands.