Image Table to Excel & CSV
Pricing
from $2.00 / 1,000 tables
Image Table to Excel & CSV
Turn a screenshot, photo or scan of a table into rows, a CSV and an Excel file. OCR runs inside the Actor, no API key needed. Billed only for tables delivered: $2 per 1,000.
Pricing
from $2.00 / 1,000 tables
Rating
0.0
(0)
Developer
Brandon Ob
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Security
Limited permissionsShare
Image Table to Excel & CSV: turn a screenshot or photo of a table into rows
This image to Excel converter turns a picture of a table (a screenshot, a phone photo of a printed page, a scanned sheet) into rows you can export, plus an Excel file and a CSV file per picture. OCR (text recognition) runs inside the Actor, so there is no API key to set up and no image is sent to another service. You are charged per table delivered, never for a picture that failed or had no table.
What does Image Table to Excel & CSV do?
- Reads pictures of tables from public links: PNG, JPG, WEBP, BMP or TIFF.
- Runs OCR inside the Actor and rebuilds the rows and columns from the layout.
- Returns each table as a dataset item with every row keyed by the column header.
- Writes one Excel file (frozen header row) and one CSV file per picture, each with a download link.
- Reports an OCR confidence score per table, and returns stray text above or below the table (a title, a footnote) in
textOutsideTable. - Lets you tune the column gap and a minimum confidence when a layout is tricky.
- Includes a built-in demo table (input
sample) so you can see the output before using your own pictures.
Use cases
- Analysts: turn a chart's data table or a dashboard screenshot into a spreadsheet you can work with.
- Operations and admin teams: digitize printed price lists, schedules or inventory sheets photographed on a phone.
- Researchers and students: capture tables from slides, posters or book pages as rows.
- Finance and bookkeeping: convert screenshots of statements or reports that cannot be exported.
- Automation builders: add an "image table to rows" step after a screenshot or file upload, and send the rows on to Google Sheets.
How to use it
- Open the Actor in Apify Console. The default input,
sample, runs the built-in demo table; replace it with your image links, one per line. Each file must open in a browser without a login. - Click Start.
- Open the Tables view, or use the
excelUrlcolumn for one spreadsheet per picture. Check theconfidencevalue on your first run. - If columns come back merged or split, adjust Column gap and run again.
- To process new pictures regularly, save the input as a task and schedule it, or call the Actor from the API.
Input
| Field | What it does |
|---|---|
imageUrls | Direct links to pictures of tables, one per line. sample runs the demo table. |
firstRowIsHeader | Use the first row as column names (on by default); off gives Column 1, Column 2, … |
columnGap | How wide the empty space between columns must be, in text heights (default 0.6). Raise it if a column splits, lower it if two columns merge. |
minConfidence | Ignore text the OCR is less sure of than this, 0 to 1 (default 0.5). |
minRows | Ignore pictures with fewer data rows than this (default 2). |
maxItems | Stop after this many tables (default 100). |
Example input:
{"imageUrls": ["sample"],"firstRowIsHeader": true,"columnGap": "0.6","minConfidence": "0.5","minRows": 2}
Output
One dataset item per picture. Real output from the default run (built-in demo table, 4 rows, OCR confidence 0.99), shortened:
{"imageUrl": "built-in sample table","columns": ["Item", "Qty", "Unit price", "Total"],"rowCount": 4,"rows": [{"Item": "Standing desk", "Qty": "2", "Unit price": "349.00", "Total": "698.00"},{"Item": "Monitor arm", "Qty": "4", "Unit price": "45.50", "Total": "182.00"},{"Item": "USB-C dock", "Qty": "3", "Unit price": "129.99", "Total": "389.97"}],"textOutsideTable": [],"confidence": 0.99,"csvUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/01-sample.csv","excelUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/01-sample.xlsx","extractedAt": "2026-10-26T11:00:36+00:00"}
The key-value store record SUMMARY lists pictures that could not be read and pictures where no table was found. The dataset can be downloaded as JSON, CSV, Excel, XML or HTML, or read through the API.
Pricing
Pay per event: $2.00 per 1,000 tables delivered, plus a $0.00005 charge per Actor start. One picture with one table is one event, whatever its size. Pictures that fail or contain no table are not charged. You can set a maximum cost per run.
Example: 100 screenshots of tables cost about $0.20.
Integrations and API
Run it and get the rows back in one call:
curl -X POST "https://api.apify.com/v2/acts/adhistory~image-tables-to-excel/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"imageUrls": ["https://example.com/table.png"]}'
Python, with the apify-client package:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("adhistory/image-tables-to-excel").call(run_input={"imageUrls": ["https://example.com/table.png"],})for table in client.dataset(run["defaultDatasetId"]).iterate_items():print(table["rowCount"], table["confidence"], table["excelUrl"])
Like every Apify Actor, it also works with Make, Zapier and n8n, with webhooks and schedules, and as a tool for AI agents through the Apify MCP server.
FAQ
How accurate is it? Best on sharp, straight, printed text with clear spaces between columns. Skewed photos, handwriting, very small text and low contrast give wrong or missing characters. Check the confidence value and spot-check your first run.
Can one picture hold several tables? One table per picture is supported. Two tables side by side or stacked come back as one, so crop them first.
My table came back merged or in pieces. Use a larger or sharper picture, then try a different columnGap (0.3 to 1.5).
Which languages work? Text recognition is tuned for Latin script and Chinese; other scripts are not supported.
Are there size limits? Files up to 20 MB from public links. Pictures are scaled down to 4,000 pixels on the longest side.
Is my image sent to a third-party OCR service? No. OCR runs inside the Actor's own container.
Do you read PDFs? Not this Actor. For PDFs with real text, use PDF Table to Excel & CSV.
Related tools
- PDF Table to Excel & CSV: tables from text-based PDFs.
- Invoice PDF to Excel & CSV: invoice data and line items from PDFs.
- Website Screenshot API: capture a web page before extracting its table.
- Google Sheets Export & Import: send the rows straight into a Google Sheet.
Found a bug or need a feature? Open an issue on the Issues tab — I usually reply within a day.