Excel to PDF

Draw an Excel or CSV sheet as a PDF table with a repeating bold header row, grid lines, auto-sized columns and page breaks; pick sheet, size and widths.

🔒 Read and drawn in your browser — your spreadsheet is never uploaded. From an .xlsx, bold and italic, text size and colour, cell fills, borders (drawn as solid lines), alignment, merged cells and pictures come across, the pictures on pages after the table; from .xls, .ods and .csv, only merged cells and number alignment. Charts, conditional formatting, the workbook's own typeface and its column widths do not.

Drop .xlsx, .xls, .ods or .csv files here or click to browse — several at once is fine

Turn a spreadsheet into a formatted PDF table

Drop in an .xlsx, .xls, or .csv file and this tool draws its rows as a clean PDF table — a bold header row that repeats on every page, grid lines, auto-sized columns, and automatic page breaks when the data runs long. Choose the sheet from a list of the workbook's own tabs, pick a paper size and direction, set your own column widths, or shrink the text until every column fits — the resulting PDF page is drawn on screen as you change them, so you can see where the page breaks land before you download, and the paper, direction and text-fitting choices are remembered on this device until you press Forget saved settings. Everything runs in your browser, so your spreadsheet is never uploaded to a server.

What to expect

The PDF is a fresh table drawn from your values, not a screenshot of Excel. From an .xlsx it keeps bold and italic text, text size and colour, cell fills, borders (drawn as solid lines), alignment and merged cells, and puts the sheet's pictures on pages after the table, each captioned with the cell it sat on — one it cannot read, such as an EMF, is named on screen; from .xls, .ods and .csv it keeps merged cells and number alignment only. Charts, conditional formatting, the workbook's own typeface and its column widths are not carried over. A long cell runs onto more lines by default, so no value is quietly cut off; if you would rather keep every row one line tall, pick that instead and the tool names the cells it had to cut, by row number and column heading. Korean, Japanese and Chinese cells get a real embedded font and stay selectable, and under Font you choose which one — twelve faces, from Korean sans, serif, monospace, handwriting and display styles to Noto Sans JP and Noto Sans SC, each listed with what it costs to download and shown as a sample line before you commit. Nanum Gothic is the default, the face is fetched once and then cached, and your choice is remembered. Pick one of the Latin-only faces at the end of the list and non-Latin characters come out as "?" — the tool counts them and says so. Emoji are left out, because no font this site ships has a picture for them, and they are counted for you.

Frequently asked questions

Does my spreadsheet get uploaded?

No. The file is read and rendered entirely in your browser with JavaScript. Nothing is sent to a server, which keeps private data on your own device.

Which sheet is converted?

The first sheet by default. Every sheet in the workbook is listed in the Sheet dropdown, so pick another and the preview redraws from it.

What happens to a cell that is too long for its column?

By default it wraps onto as many lines as it needs, so the whole value is in the PDF and only that row gets taller. If you choose to keep rows one line tall, anything past the edge of the column is cut — and the cells that were cut are listed on screen with their row number and column heading, so nothing disappears without you being told. You can also widen that column yourself, or shrink the text until everything fits.