Document Toolkit
Eleven converters for invoices, PDFs, images, bank statements and spreadsheets. Everything runs in your browser.
Before you start
- No account and no daily limit.
- Files are never uploaded. Results live only on the open page — download before you leave.
- Text recognition (OCR) also runs on your device. The first time, the browser downloads the OCR model (about 60 MB); after that it is cached.
- OCR can misread characters. Compare the numbers with the image before you rely on them.
At a glance
| Tool | Input | Limits | You get |
|---|---|---|---|
| Invoice → Excel | PNG, JPEG, WebP | 100 files, 15 MB each | Excel: Invoices, LineItems, Warnings |
| Invoice → JSON | PNG, JPEG, WebP | 100 files, 15 MB each | JSON with every invoice |
| XML Invoice → Excel | XML, ZIP, PDF (Factur-X / ZUGFeRD) | 30 MB each, ZIP up to 200 MB unpacked | Excel: Invoices, LineItems, TaxBreakdown, Checks |
| PDF → Excel | One PDF | 50 MB, 200 pages | Excel, one sheet per page or all in one |
| Image → Excel | PNG, JPEG, WebP | 30 images, 15 MB each | Excel, one sheet per image |
| Excel → JSON | XLSX, CSV, TSV | 50 MB each | One JSON per file |
| JSON → Excel | JSON, JSONL, NDJSON or pasted | 50 MB | Excel |
| CSV ↔ Excel | CSV or Excel | 50 MB each | Excel or CSV |
| Excel Merge | Several Excel / CSV | 50 MB each | merged.xlsx |
| Excel Cleaner | One Excel / CSV | 50 MB | Cleaned Excel or CSV |
| Bank Statement → Excel | MT940, CAMT XML, OFX/QFX, CSV, XLSX, PDF, photos | 50 MB each | Excel: Transactions, Statements, Checks |
Spreadsheets: old .xls files must be saved as .xlsx first. Formulas come out as the value Excel last saved. Excel output is capped at 1,048,576 rows, 16,384 columns and 32,767 characters per cell.
Invoice → Excel
- Drop invoice photos or scans. They are read one at a time.
- Click a row to review it. A yellow box on the image shows where each field was read from.
- Fix any field: seller, tax ID, invoice number, date, currency, subtotal, tax, total, charges and line items. Totals are checked by arithmetic and problems are listed.
- Click Confirm (or Confirm anyway).
- Click Export Excel or Export JSON. Unconfirmed invoices are exported too, marked with their review status.
Invoice → JSON
Same steps as Invoice → Excel; click Export JSON to get one JSON file with every invoice.
XML Invoice → Excel
Reads Vietnamese e-invoices (Decree 123), UBL / Peppol and CII, including XML inside ZIP files and PDFs. Values are taken as written — no OCR, no guessing. Totals are checked with EN 16931 rules and the Vietnamese per-rate summary. Duplicates are skipped. The digital signature is not verified.
PDF → Excel
Options: one sheet per page, store numbers as numbers, and OCR for scanned pages (all on by default). The summary shows how many pages were read with OCR and which had no text. Scripts inside the PDF are never run.
Image → Excel
Drop photos or scans of tables (PNG, JPEG, WebP — up to 30 images, 15 MB each). Text is read with OCR on your device; you get an Excel file with one sheet per image.
Excel → JSON
First row as header (or arrays), pretty print. Empty cells become null, dates become ISO 8601. Several sheets give an object keyed by sheet name.
JSON → Excel
Nested objects become columns like address.city; lists stay as JSON text; numbers longer than 15 digits are kept as text.
CSV ↔ Excel
The direction follows the file. To CSV: comma, semicolon or tab, UTF-8 with BOM, and protection against formula injection.
Excel Merge
Pick the sheets, then stack rows into one sheet (columns matched by header, with source columns) or keep each sheet separate. Values only.
Excel Cleaner
Trim spaces and invisible characters, remove empty rows, empty columns and duplicate rows. Formatting, merged cells and formulas are not kept.
Bank Statement → Excel
Drop statements in any of the formats above. Set date order and decimal mark, or leave them on Auto. Column headers are recognised in English, Vietnamese, German, French, Spanish and Italian. Each statement is checked: opening balance + transactions = closing balance, and the running balance on every row.