Loading
Loading
Extract
A table in a photograph is data you can see and cannot use. This tool reads the text, works out where the columns are from the spacing between the words, and shows you the grid it found so you can check it against your original before downloading a CSV. That check is not a formality: column detection is an inference, and a spreadsheet with values under the wrong headings looks exactly as convincing as a correct one. The tool tells you what share of the lines fitted the grid and how many did not, and it declines to offer a table at all when the page does not look like one. Everything runs on your device.
This tool accepts JPG, PNG, WebP and BMP files. Everything is decoded by your own browser, so the formats available depend on what your browser can open - which for HEIC in particular varies between Safari and other browsers.
From the gaps. The recognition engine reports where every word sits on the page, and a column boundary shows up as a run of whitespace that appears in the same place on line after line. A wide gap on one line is just a wide gap; the same gap on nine lines is a column. That second condition is what does the work, because it is the one ordinary prose never satisfies - text can be ragged or centred and produce wide gaps everywhere, but they land somewhere different on every line.
Because the failure this can produce is invisible in the output. A misread word is obvious - you see a mangled word and you know. A misplaced column is not: every value in it is a real value, correctly recognised, sitting under a heading it does not belong to, and nothing in the CSV says so. You cannot catch that by reading the file, but you can catch it in seconds by glancing at a grid next to your original, which is why the export button lives inside the preview.
The share of text lines that actually fitted the column layout. A line that runs across the whole width - a caption, a total, a note - has no gap where the boundaries are, so it does not fit and is left out and counted. A high percentage means the grid describes the page well. A lower one means several lines disagreed with it, which sometimes means a footnote and sometimes means the columns are in the wrong place, and it is shown as a number rather than a word so you can decide which.
Because most images are not tables, and a tool that finds one in every paragraph has a table feature that means nothing. It requires at least three rows, at least two columns, boundaries that recur down the page, and enough lines fitting the result to be worth proposing. Below any of those it says nothing rather than handing you a one-column table that is really just the text again.
Ruled lines are irrelevant to it either way - it works from the position of the words, not from the borders, so an unruled table is no harder than a ruled one. Merged cells are a genuine limitation: a value spanning two columns is placed in whichever column its centre falls in, and a header spanning the whole width will usually be counted as a row that did not fit. Both cases show up in the preview, which is the point of showing it.
No. The recognition engine and the language model are downloaded from this site to your browser and run there, and the column analysis is arithmetic on coordinates that never leaves the page. That matters here more than on most pages, because a photographed table is usually a bank statement, an invoice, a payslip or a set of results - the kind of thing you would not paste into a website.
Looking for something else? Browse all ImageUtility tools.