Convert Excel to PDF — free & private
Turn your .xlsx, .xls, .ods, .csv, or .tsv spreadsheets into a clean PDF right in your browser. Preview every sheet before you download — multi-sheet workbooks split each sheet onto its own page automatically.
How to convert Excel to PDF online
Converting an Excel workbook into a PDF with PDFluna takes under a minute and runs entirely in your browser. There is nothing to install and no account to create. Here is the full process:
- Choose your spreadsheet. Drag and drop your file onto the upload area, or click Choose spreadsheet to pick one. PDFluna accepts .xlsx (Excel 2007 and later), .xls (Excel 97–2003), .ods (LibreOffice / Calc), .csv (comma-separated), and .tsv (tab-separated). Files up to 20 MB are supported.
- Review the live preview. PDFluna parses every visible sheet and shows a preview of the exact pages that will go into your PDF. Each sheet starts on its own page. If a sheet is hidden in Excel, we skip it — you only export what you intended to share.
- Pick paper size and orientation. A4 or US Letter, portrait or landscape. Spreadsheets default to landscape because most are wider than they are tall. Switch to portrait if your data is column-heavy.
- Click Download as PDF. The preview is rasterised at high DPI and assembled into a multi-page PDF in your browser. Sheet names appear as section headings; each sheet starts on a fresh page. The finished file downloads automatically.
- Verify the result. Open the PDF to confirm the columns landed where you expected. For simple data tables it’s ready to share. For very wide spreadsheets, compare against the preview and consider hiding non-essential columns in Excel before re-exporting if the right edge gets cropped.
What works well and what doesn’t
Most online Excel-to-PDF tools advertise pixel-perfect fidelity and their users discover the gaps only after downloading. We prefer to be upfront. Our client-side pipeline handles the bulk of common spreadsheets cleanly and degrades on a few specific edge cases — here’s where the line falls.
- ✓ Accepted formats.
.xlsx(modern Excel, 2007 and later),.xls(legacy Excel 97–2003 binary),.ods(OpenDocument Spreadsheet from LibreOffice Calc, OpenOffice, or Google Sheets export),.csv(comma-separated, universal), and.tsv(tab-separated). All five processed entirely in your browser via SheetJS. - ✓ Works well. Tables of values — numbers, dates, currency, percentages with their cached display formatting; multi-sheet workbooks (each sheet on its own page with the sheet name as a heading); simple per-cell formatting (bold/italic, alignment, fill colour); merged cells; cached formula results; sheet visibility (hidden sheets are skipped). Monthly reports, expense lists, inventory tables, transaction logs.
- ⚠ May have issues. Conditional formatting beyond simple fills (data bars, icon sets, three-stop gradients often degrade); merged cells with very different content sizes; very wide tables (columns past the page edge get cropped — switch to landscape or hide non-essential columns first); custom fonts the browser doesn’t have installed (substituted with the closest system equivalent). RTF or special characters in cells generally come through fine.
- ✗ Not supported. Charts and graphs (we render the static cells but the chart object itself appears as blank space — SheetJS reads chart metadata but client-side rendering of every Excel chart type would require thousands of lines of code we don’t want to maintain), pivot tables as interactive objects (the rendered values are correct but the pivot collapses to a flat table), VBA macros and form controls (silently dropped), embedded objects (Word documents inside Excel, OLE-linked files), password-protected workbooks (remove the password in Excel first).
Tip. Always review the preview before downloading. If the preview shows a problem, the PDF will have the same problem — that’s not a bug, it’s the tool telling you that this particular spreadsheet needs Excel’s own Save as PDF instead.
When you need to convert Excel to PDF
XLSX is the working format; PDF is the delivery format. The handoff between them happens every day, usually for one of these reasons:
- Sharing read-only data. A PDF prevents accidental edits to a spreadsheet you’re sending out for review — the recipient sees the values exactly as you snapshotted them, with no risk of formula bombs or accidental cell edits.
- Email attachments and portals. Most invoice processing systems, expense portals, and tender platforms accept PDF only. Converting your spreadsheet to PDF removes the “please re-export as PDF” back-and-forth.
- Audit trails and archives. PDF is tamper-evident and renders identically forever — useful for monthly reports, financial statements, and anything that needs to look the same in 10 years.
- Cross-platform readability. Recipients without Excel installed (older Macs, Linux users, mobile-only colleagues) can open a PDF instantly. No format compatibility worries.
- Printing. A pre-paginated PDF prints predictably; an XLSX printed via “File → Print” in Excel often surprises with column splits or scaled-to-fit shrinking.
Already have the PDF and want to refine it? Edit the resulting PDF, compress it for email, merge it with other files, or rotate pages if something came out sideways.
How PDFluna converts your spreadsheet
Most online Excel-to-PDF converters upload your file to a server running Microsoft Excel or LibreOffice, convert it there, and send the PDF back. That round trip is slow on big workbooks, raises obvious privacy questions when the file is a salary report or customer list, and can fail silently if the server is under load. Our approach is the opposite: nothing leaves your browser.
When you drop a file, PDFluna lazy-loads SheetJS — the open-source spreadsheet parser that reads .xlsx, .xls, .ods, and .csv all in JavaScript — and parses the workbook in-browser. We walk every visible sheet, ask SheetJS to render it as an HTML table (with cached formula values, merged cells resolved, and per-cell number formatting preserved), wrap each sheet in a section with its name as a heading, and inject the result into a sandboxed preview iframe so you see exactly what will end up in the PDF. When you click Download, html2canvas rasterises the rendered preview at 2× resolution for crisp output, and pdf-lib slices the tall canvas into page-sized chunks and assembles the final multi-page PDF. The finished file lands on your device as a direct browser download.
The honest trade-off: the output PDF carries an image of each sheet, not the underlying values. That means you cannot select cells or copy numbers out of the PDF, and the file is a little larger than a true text-based PDF would be. For internal sharing, archival, or printing this is invisible to the reader. For data exchange with another spreadsheet, sending the original .xlsx is simply the right answer; for searchable archival, Excel’s built-in Save as PDF embeds real text and matches our pipeline’s shape but with selectable text.
Frequently asked questions
Is my spreadsheet uploaded to your server?
No. The entire conversion — parsing the workbook, rendering each sheet, rasterising the preview, and assembling the PDF — runs in your browser with JavaScript. Your data never leaves your device. You can verify it: open DevTools → Network before uploading and you’ll see zero requests carrying your file.
Which spreadsheet formats are supported?
Five formats, all parsed by SheetJS in your browser: .xlsx (the modern Excel format), .xls (the legacy Excel 97–2003 binary), .ods (OpenDocument Spreadsheet, from LibreOffice Calc / OpenOffice / Google Sheets export), .csv (comma-separated values, the universal export format), and .tsv (tab-separated). Multi-sheet workbooks are supported for .xlsx, .xls and .ods; .csv / .tsv are inherently single-sheet.
What’s the maximum file size?
Twenty megabytes. Spreadsheet parsing is memory-heavy — we have to read the workbook structure, evaluate or look up cached formula values, build HTML for every sheet, then rasterise it. We hard-stop at 20 MB to avoid crashing the browser tab. Files between 10 and 20 MB show a warning that conversion may be slow on mobile.
Why can’t I select text in the output PDF?
Our client-side pipeline renders each sheet to a high-resolution image and embeds those images in the PDF. That preserves the visual layout exactly — but text and numbers inside become part of the image, not a separate text layer. The PDF won’t respond to Ctrl+F and you can’t copy values out. If you need a searchable PDF, Excel’s built-in Save as PDF (File → Save As → PDF) produces a text-based PDF; alternatively, run our converted PDF through OCR.
Are formulas preserved?
Their cached values are. SheetJS reads the value Excel last computed for each formula and renders that into the HTML — so if your spreadsheet showed “1,234.56” in cell B3, the PDF shows 1,234.56 too. The formula text itself isn’t in the output (it can’t be — the PDF is a snapshot of values, not formulas). If a workbook was created somewhere that didn’t cache values (rare), you may see empty cells; opening and re-saving in Excel rebuilds the cache.
What about charts, pivot tables, and conditional formatting?
Charts are not rendered — they appear as blank space where the chart would be. Pivot tables come through as their static value cells (you lose the interactive pivot, but the rendered numbers are correct). Simple conditional formatting (cell fill colour from a value rule) is preserved when SheetJS can read it; complex rules (data bars, icon sets, multi-step gradients) often degrade. For workbooks dominated by these features, Excel’s own Save as PDF preserves them faithfully and is the right choice.
My table is wider than the page — can I scroll right in the PDF?
No — PDF is a fixed-page format, not a scrollable view. If your spreadsheet is wider than the chosen paper size, the right edge of the table is cropped. Two options: switch to landscape orientation (already the default in this tool — most spreadsheets are wide), or hide non-essential columns in Excel before re-exporting. If the data genuinely needs more width than landscape A3 provides, consider exporting each section as a separate workbook.
Are hidden sheets included in the PDF?
No. We respect Excel’s sheet visibility flag — hidden and very-hidden sheets are skipped, just like Excel’s own Save as PDF behaves. The workbook summary above the preview tells you how many sheets are included and how many are hidden. If you want a hidden sheet in the output, right-click its tab in Excel and choose Unhide before exporting.