Skip to main content
  • 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.

BrainBox Team7 min read
View as Markdown

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?

  1. 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.

  2. 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.

  3. 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.

  4. 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".

  5. 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.

  6. 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.

ProjectBudget (h)Actual (h)Deviation
PRJ-031 ERP migration640912+42.5%
PRJ-027 Customer portal480611+27.3%
PRJ-044 Internal audit200238+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?

TaskHow to askWhat 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?

AspectDetail
FormatsCSV, XLSX, XLS, XLSB, JSON, delimited text
Excel with several sheetsIndexed sheet by sheet; the citation points to the sheet
Time per runMaximum 2 minutes; the environment pauses after a few idle minutes
Librariespandas, numpy, scipy, scikit-learn, statsmodels, matplotlib, seaborn, plotly, openpyxl, xlsxwriter
Interactive chartsLine, scatter, bar, pie, box
OutputsPNG, XLSX, CSV, PDF, DOCX, downloadable and saveable to the Box
ModeAgent mode only; the capability can be switched off per Box
CostIntelligence 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 analysisBrainBox
Data + documentsThe Excel file goes aloneThe Excel file sits in the same Box as the contract, the report and the meeting, and one question can cross them
After the analysisGenerated files are lost when the chat closesSaved in the Box, indexed, kept as a source
TeamEveryone uploads their own copyOne shared Box with roles; everyone asks about the same file
ControlThe user decides everythingThe admin can switch off the code interpreter in confidential Boxes
CitationThe file nameSource 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.

Hours Q3 · Chat

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.

Simulation: the AI shows the code step that produced the join when you ask for it.

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.