Convert .xlsx, .xls and .csv spreadsheets to PDF with rows, columns and charts kept in place. Files are converted on our server and are not stored.
Drag & drop or click to upload
Supported formats: .xlsx, .xls, .csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, text/csv (Max 50MB)
This tool is powered by a secure, containerized LibreOffice engine (Gotenberg). When you upload an Excel spreadsheet, it is securely transmitted to our isolated cloud worker. The worker performs a high-fidelity conversion preserving all columns, rows, and charts, returns the PDF, and immediately destroys the original file from memory.
A spreadsheet is a working document: columns resize, formulas recalculate and filters hide rows. When you send one to a client, an accountant or a manager, you usually want the opposite — a fixed snapshot that prints the same way everywhere and cannot be edited by accident. This converter turns .xlsx, .xls and .csv files into a PDF that preserves your rows, columns, number formats and charts as they appear in the workbook.
Producing that snapshot needs a real spreadsheet engine, so — unlike the local tools elsewhere on this site — the conversion happens on our server. The badge above the upload box says so, and the next section spells out how the file is treated: uploaded over HTTPS, converted in memory, returned as a PDF, and not stored.
The file is sent to our conversion endpoint and forwarded, in memory only, to a LibreOffice-based conversion service (Gotenberg). The API route does not write your spreadsheet to disk or to a database, and no copy of the upload or the resulting PDF is kept after the response completes. The server accepts spreadsheets up to 30 MB and rate-limits conversions to 5 requests per minute per IP address.
If a workbook contains data you are not permitted to upload anywhere — payroll under a strict policy, for instance — use desktop Excel or LibreOffice instead. For invoices, price lists, reports and shared trackers, the in-memory handling described here is the whole story.
Client-side JavaScript libraries can parse raw spreadsheet numbers, but they cannot faithfully reproduce Excel conditional formatting rules, embedded pivot charts, print-area page breaks, or multi-sheet print scaling. When you start a conversion, ExcelToPdfClient.tsx sends a multipart/form-data POST request to /api/excel-to-pdf, which validates the extension (.xlsx, .xls, .csv) and 30 MB ceiling before streaming the buffer to an isolated Gotenberg LibreOffice Calc instance (/forms/libreoffice/convert).
How to inspect the transfer in Browser DevTools: Open DevTools (F12 -> Network) and convert a sample workbook. You will see a single POST /api/excel-to-pdf request carrying the multipart file stream and returning the application/pdf binary response directly to your browser with zero persistent storage.
| Parameter / Workbook Feature | Supported Specification | Rendering & Pagination Behavior |
|---|---|---|
| Accepted Formats & Size Ceiling | .xlsx, .xls, .csv up to 30 MB (31,457,280 B) | Enforced in both client pre-check and /api/excel-to-pdf route |
| Formulas & Calculated Cells | Cached formula results + LibreOffice Calc evaluation | Renders displayed formatted values (currency, dates, percentages), not raw formula strings |
| Wide Multi-Column Sheets | Honors embedded Page Setup (Orientation & Fit-to-Page) | Unconfigured wide sheets split across pages; set Landscape + Fit All Columns on One Page before upload |
| Rate Limit & Retention Policy | 5 conversions / minute / IP; 0-second disk retention | Processed strictly in ephemeral container RAM and discarded on response close |
Click the upload area or drag your .xlsx, .xls or .csv file onto it. Files up to 30 MB are accepted.
Check the file name and size shown before converting.
Start the conversion. The spreadsheet is uploaded to the conversion server, rendered to PDF, and the download begins automatically.
Open the PDF and check wide tables carefully: very wide sheets may span several PDF pages, just as they would when printed from Excel.
Adjust page setup in your spreadsheet (orientation, fit-to-page) and convert again if the printed layout needs it.
Sending an invoice, quotation or price list that the recipient can read and print but not quietly edit.
Sharing a monthly report or budget summary with people who do not use Excel.
Submitting a spreadsheet-based form or data table through a portal that requires PDF.
Printing a table for a meeting without worrying that the office printer has a different Excel version.
Freezing a tracker or roster at a point in time for records, while the workbook keeps evolving.
Yes. Faithful spreadsheet rendering needs a real office engine, so the file is uploaded over HTTPS and forwarded in memory to a LibreOffice-based conversion service (Gotenberg). It is not written to disk or stored in a database, and no copy is retained once the PDF has been returned.
It is not kept. Your spreadsheet exists in server memory only while the conversion request is running. After the PDF is sent back, neither the upload nor the output remains on the server.
Spreadsheets up to 30 MB are accepted. Most workbooks are far smaller; files grow large mainly through embedded images, which you can compress in Excel before converting if needed.
Yes. The PDF shows the calculated values as they appear when the workbook is opened, not the formulas themselves. Make sure the workbook has been saved after its last calculation so the values are current.
The converter follows the workbook's own print settings. If page setup is left on defaults, a wide sheet flows across multiple pages. Setting landscape orientation or “Fit Sheet on One Page” in Excel before converting gives a single-page-wide result.
Yes, it is free and needs no account. Conversions are rate-limited to 5 per minute per IP address to keep the shared service responsive.