Convert an Excel Spreadsheet to PDF
Converting an Excel spreadsheet to PDF paginates an effectively infinite grid onto fixed pages — which is why it fails more often than any other office conversion: columns get sliced, tables shrink to unreadable sizes, and stray cells add blank pages. The fix is to decide the print area, orientation, and scaling before exporting. This page shows that preparation, then the export from Excel or from the LibreOffice command line.
Turning a spreadsheet into pages requires a calculation and layout engine — formula evaluation, cell rendering, print-area logic, page-break rules — that browsers do not provide, so an honest local converter cannot run on this page. The methods below use engines built for the job and keep your workbook on your machine.
Disclosure: this page contains affiliate placeholder links. If they were live, we could earn a commission at no extra cost to you.
AFFILIATE PLACEHOLDER: Recommended desktop PDF suite (placeholder link)
How to convert Excel to PDF with correct page breaks (step by step)
Method 1 — Prepare in Excel, then export (recommended)
- Set the print area. Select the cells that belong in the PDF, then Page Layout > Print Area > Set Print Area. This is the single biggest fix — it excludes scratch columns and lone values in far-away cells that otherwise generate near-blank pages.
- Set orientation and scaling. Still on the Page Layout tab: choose Orientation > Landscape for wide tables, and in the Scale to Fit group set Width: 1 page while leaving Height: Automatic. Columns now always fit; rows flow onto as many pages as needed.
- Check the breaks. View > Page Break Preview shows blue lines where pages will split; drag them to break between logical sections. Use Page Layout > Print Titles > Rows to repeat at top so the header row appears on every page.
- Export. File > Export > Create PDF/XPS Document; in Options choose Active sheet, Entire workbook, or Selection, then Publish.
Method 2 — LibreOffice Calc, including headless CLI
- Open the .xlsx in Calc; define print ranges under Format > Print Ranges > Define and scaling under Format > Page Style > Sheet > Scale ("Fit print range(s) to width/height" mirrors Excel's width-1 trick).
- Export via File > Export As > Export as PDF, or from the terminal:
soffice --headless --convert-to pdf file.xlsx. The headless run uses the page setup saved in the file, so do step 1 once and the CLI conversion is repeatable for every future version of the workbook.
Method 3 — Print to PDF (quick, but check first)
- Press Ctrl+P, choose Microsoft Print to PDF (or Save as PDF on macOS), and — crucially — read the preview. The print settings pane offers the same scaling choices ("Fit All Columns on One Page") without touching the saved workbook.
- Save. This route is fine for one-off snapshots; it offers no workbook-wide export and drops any hyperlinks in cells.
How it works
A worksheet has no pages, no paper size, and in a real sense no edges: the grid extends to column XFD and row 1,048,576, and any cell that ever held content still counts toward the "used range". Pagination is therefore a pure convention applied at print time. The engine takes the print area (or, if none is set, the used range — the source of most surprise blank pages), measures column widths and row heights in points, applies the scaling factor, and slices the result into page-sized tiles: left-to-right then top-to-bottom, or the reverse, per the sheet's page-order setting.
Scaling is the subtle part. "Fit to 1 page wide" computes one uniform shrink factor for the whole sheet — text, gridlines, charts — so every column fits the printable width; because only width is constrained, readability degrades gracefully as tables get wider, until around 45–50% scale where 11-point text drops under 5 points and stops being legible in print. That is the signal to switch to landscape or split the table rather than shrink further. Manual page breaks are stored in the sheet's XML (rowBreaks/colBreaks in the .xlsx) and are respected by both Excel and LibreOffice, which is why preparing the file once makes even headless CLI conversions come out right.
The exported PDF itself contains real vector text and lines — glyphs positioned by the layout engine with fonts subsetted and embedded — not a screenshot of the grid. Numbers remain selectable and searchable, but formulas are gone: the PDF records the displayed value of each cell at export time, nothing else.
Worked example: a 38-column ledger that would not fit
A finance ledger: 38 columns by 412 rows on one sheet, plus a scratch area in columns AN–AS. A naive Ctrl+P produced 24 pages, columns sliced across 5 page-widths, plus 3 junk pages from the scratch area — unusable. Preparation took two minutes: print area set to A1:AL413, landscape orientation, Width fixed to 1 page, header row 1 set as a print title, and one manual break dragged to separate the Q1 and Q2 sections.
The re-export produced an 11-page PDF of 268 KB from the 1.9 MB workbook, every page a full-width slice of the table with headers repeated, at a scale factor Excel reported as 58%. Since 58% left the 10-point font at 5.8 points — legible on screen, marginal in print — the final version split the sheet into two landscape print areas of 19 columns each, giving 22 pages at 96% scale. That is the routine trade-off in Excel-to-PDF work: fewer pages or bigger type, never both.
Excel to PDF — frequently asked questions
How do I stop Excel cutting off columns when saving to PDF?
On the Page Layout tab, set Width to 1 page in the Scale to Fit group and leave Height on Automatic. Excel then shrinks the sheet just enough that every column fits the page width, and only row breaks remain.
How do I convert a whole Excel workbook, not just one sheet, to PDF?
In the export dialog click Options and choose Entire workbook; every visible worksheet becomes a section of one PDF using its own page setup. Alternatively select several sheet tabs with Ctrl-click first and export the selection.
How do I repeat the header row on every PDF page?
Use Page Layout, then Print Titles, and set Rows to repeat at top to your header row, for example row 1. Every page of the exported PDF then starts with the column headings, which matters for tables spanning many pages.
Can I convert Excel to PDF without Excel installed?
Yes, LibreOffice Calc opens .xlsx files and exports PDF, including from the command line with soffice --headless --convert-to pdf file.xlsx. Set the print ranges and scaling inside the file first, because the headless conversion applies whatever page setup is saved in the workbook.
Why does my Excel PDF come out almost unreadably small?
A fit-to-one-page setting is squeezing a large sheet onto a single sheet of paper, shrinking the font with it. Set only Width to 1 page and let the height flow onto more pages, or switch to landscape, or split the table across deliberate print areas.