Excel to PDF Converter Convert a spreadsheet to PDF locally in your browser - keep your column widths, dates and currency
Drop your workbook into the emerald zone below and get a readable PDF back in seconds. Dates print as dates, currency keeps its symbol and its decimals, and the column widths you set in Excel are the column widths you get. Every sheet, number format and cell fill is read out of the XML by your own processor. Your financial data never leaves your machine.
Files never leave your device
No installation, no watermark
Works offline once the page is open
XLSX to PDF Live
XLSXPDF
Privacy
100% private
Your plan
Free to use
You get
Single PDF
Select spreadsheetsor drop them anywhere on this page
XLSX, XLSM, XLTX, CSV, TSV up to 20 files 100 MB per batch
Your files are read by JavaScript running on your own machine. There is no upload, no queue, and no copy on our server to delete later.
Drag a card to reorder it, or use the arrows under each card. The order here is the order in the output. Each card is a preview of the finished page, so what you see is what the PDF will contain.
Esc close ←→ move R rotate
Working on your files
Starting
0%
This is your processor doing the work, so the time it takes depends on your machine and not on how many other people are on the site.
Your PDF is ready
Continue with
The converter above is live and strictly local. The engineering manual below explains how to convert Excel to PDF without wrecking the layout - how a stored serial number turns back into 06 Oct 2026, where the engine decides to break a page when a spreadsheet has no pages of its own, and what happens to formulas, charts and hidden sheets on the way through.
How to Convert an Excel Spreadsheet to PDF for Free
One minute, no installation, and no account for your first run. This Excel to PDF converter executes entirely inside the page you are reading, so every step of the job happens on your own hardware.
1
Drop your workbook into the emerald zone
Click the drop area above or drag the file anywhere onto this page. The workbook is opened locally as it lands and the card reports how many sheets it holds. CSV and TSV files are parsed directly and never need converting to XLSX first.
2
Choose Fit to width or Actual size
Fit to width scales the whole sheet down, to a floor of 35 percent, until every column lands on one page width. Actual size keeps the type at full weight and continues wide sheets onto further pages to the right. Use Actual size for a forty column data export, where legibility matters more than a tidy single page.
3
Set orientation, sheets and the repeating header
Leave Orientation on landscape, because a spreadsheet is almost always wider than it is tall. Which sheets decides between every visible sheet and the first one only. Leave Repeat the first row on every page switched on, or page four of a price list arrives with no column names on it.
4
Convert the file and audit the widest sheet
Press Convert to PDF and let your own processor do the work. Open the result and check your widest sheet first, then any column holding dates or currency. If the numbers look cramped, switch to Actual size and run it again.
Dropping several workbooks at once gives you one combined PDF, merged in the order the cards appear on screen, which is how a month of supplier statements becomes a single attachment. Each sheet still starts on a fresh page with its name in the header. Turn off Merge all workbooks into one PDF to get one file per workbook instead.
A batch holds 20 files and 100 MB on a free account, and a visitor who is not signed in gets 1 conversion every 12 hours against 2 for a free account. CartHacker Premium takes each batch to 100 files and 500 MB and removes the conversion counter, which is what a finance team closing a month of management accounts actually runs into.
The Engineering Behind Spreadsheet to PDF Conversion
An .xlsx file is a ZIP archive full of XML, standardized as ECMA-376. Rename one to .zip and open it: xl/workbook.xml lists the sheets, xl/worksheets/sheet1.xml holds the cells, and xl/styles.xml holds the number formats and fonts that make those cells mean anything.
That structure is why this converter can run in a browser tab at all. A ZIP decoder and an XML parser rebuild the grid locally, with no headless server, no remote copy of Office and no upload. The whole job is arithmetic over text files you already have.
Why a cell is not just a value
This is the difference between a converter and a tool that prints a database dump. Rendering one cell correctly takes four separate lookups:
A number cell holds a bare number and a style index. The cell you read as 06 Oct 2026 stores 46301 and nothing else. The date lives in a format table two files away.
A text cell holds an index into the shared string table. Two hundred rows reading "North" store the word once and point at it two hundred times, which is why the file is smaller than the grid suggests.
A formula cell holds the equation and the value Excel last calculated. The cached value is what prints.
The style index points into a format table holding the font, the fill and the number format rules for that cell.
Resolve all four, in that order, for every cell. Skip the formatting lookup and you get a page of five digit integers where the invoice dates were supposed to be.
Verify our zero-trust privacy claim in thirty seconds. Load this web page, physically pull your network cable or disable Wi-Fi, and hit convert. The engine still works, because there is no server-side step to lose.
Number Formats, Serial Dates, and the 1900 Leap Year Bug
Excel stores a date as the number of days since the start of 1900. Nothing in the cell says "this is a date". The only thing that turns 46301 into a delivery date your warehouse can read is a format code sitting in another table entirely.
The built-in formats nobody writes down
Format codes 0 to 49 are defined by the specification itself and are never written into the file. A cell simply declares "use format 14" and expects the reader to know what that means. A converter without that lookup table hardcoded prints every date as a five digit number, which is the single most common failure in free spreadsheet exports. We built the table in.
Stored in the cell
Format rule
Printed in the PDF
46301
Built-in 14, mm-dd-yy
10-06-26
46301
yyyy-mm-dd
2026-10-06
46301
mmmm yyyy
October 2026
46301.75
h:mm AM/PM
6:00 PM
1234567.89
#,##0.00
1,234,567.89
0.1567
0.0%
15.7%
-42
#,##0;(#,##0)
(42)
45.5
Custom currency prefix
The exact prefix, then 45.50
The leap year that never happened
Excel believes 29 February 1900 existed. It did not. Lotus 1-2-3 shipped that bug in 1983 and Microsoft copied it deliberately, because matching a competitor mistake was cheaper than breaking every file in existence. Every serial from 61 upward is therefore a day out. The engine anchors its epoch to compensate, so the date in your PDF is the date on your screen.
Cell fills, horizontal alignment, thousands separators, fixed decimal places and the trailing comma that scales a figure by a thousand are all reproduced. Numbers stay right aligned and text stays left aligned, since a column of prices flushed to the left margin is the mark of a converter that read the values and ignored the formatting.
Column Widths, Page Splitting, and Overflow Text
A spreadsheet has no pages. It is an unbounded grid, and a Word document is not, which is why a converter that treats the two the same produces nonsense. Every page break in your PDF is a decision this engine made, and the rules behind those decisions are worth knowing before you print 300 rows.
Where column widths come from
Excel measures column width in characters of the default font, which is a genuinely strange unit. The engine converts it the way Excel itself does: seven pixels per character, plus five pixels of cell padding, then multiplied by 0.75 because one screen pixel is exactly three quarters of a typographic point. A column you widened by hand to fit a product description stays that width in the PDF. Hidden columns come through as zero width and simply do not print. A CSV has no widths at all, so each column is measured against its own longest cell and clamped between 28 and 240 points.
Where the page breaks land
Vertical breaks are decided row by row. The engine measures the height of the next row, and if drawing it would cross the bottom margin it opens a new page first. A row is never split across two pages, so a wrapped three line address moves down whole rather than losing its last line to the page edge. Row heights you set in Excel are honored, with a floor tied to the type size so a deliberately squashed row stays readable.
Horizontal breaks work differently. Under Actual size, columns are packed greedily into as many page-wide bands as they need, and the bands print in order: every page of the first column band top to bottom, then the second band starts again at row one. Read a wide export as a set of vertical strips rather than as a scroll. Every page carries a header band 22 points deep with the sheet name on the left, and on the right the sheet number, the column range as spreadsheet letters, and the page number within that band.
One honest limitation. The engine does not read the print area you defined in Excel or the manual page breaks you dragged into place under Page Layout, so it lays out every visible cell using the rules above rather than following your printer setup. If a specific pagination is contractual, put the block you need on its own sheet, or use native Excel export for that file.
Fit to width and Actual size
Layout Setting
What it does
When to use it
Fit to width
Scales the whole sheet down, to a floor of 35 percent, until every column fits across one page. Type shrinks with it but stops at 60 percent of its base size.
Management reports, invoices and price lists that somebody has to scan in one glance.
Actual size
Keeps type at full size and pushes the columns that do not fit onto further pages to the right.
Heavy working documents: a forty column financial export where every figure has to stay legible.
Sheets that are hidden in Excel are never included, and empty sheets are skipped rather than printed as a blank page. Each sheet begins on a fresh page. Draw gridlines paints the cell grid at hairline weight, and switching it off suits a report that already uses fills to separate its sections.
Handling text wider than its column
Spill into empty cells, as Excel does. The default. A label runs on into the columns beside it for as long as those cells are empty and the current band lasts. A right aligned cell never spills, so a long number is cut rather than run backward across your figures.
Wrap it and make the row taller. Text is broken inside the column and the row grows to fit. Lines that would fall below the row are dropped, so this works best with wrap already set on the cell in Excel.
Cut it off at the column edge. The text is truncated with an ellipsis. Use it when the grid alignment matters more than the full string. Whichever mode you pick, every truncated cell is counted on the result screen so nothing disappears quietly.
CSV Files, Formulas, and What Does Not Translate
Converting CSV to PDF runs through a strict RFC 4180 parser rather than a split on commas. That distinction stops being academic the first time a company address field contains its own comma and every column after it shifts one place to the left.
Quoted fields are respected. Internal commas, a doubled quote standing for a literal quote, and newlines inside a single cell all parse correctly.
The delimiter is detected, not assumed. Commas, semicolons, tabs and pipes are tested across the first ten lines, which is what a European export saved with semicolons needs.
Byte order marks are stripped. Otherwise an invisible character sits at the front of your first column heading and every lookup against it fails.
What does not survive the conversion, stated honestly
Feature
Result
Engineering Reason
Formulas
Printed as the final value
We print the value Excel cached at the last save. A PDF is a static document and not a calculation engine.
Charts and Graphs
Not carried
Excel builds charts from the data at display time. The file holds the numbers and no picture of the result.
Floating Images
Not carried
A floating picture sits on top of the sheet rather than inside the grid, so it has no cell to belong to.
Conditional Formatting
Not carried
The rule is stored, but the color is not. Evaluating it needs a full spreadsheet engine running your formulas.
Cell Borders
Replaced by a clean grid
Custom border weights give way to one uniform hairline grid, which you can switch off entirely.
Hidden Sheets
Skipped entirely
Hidden sheets and columns are working calculations far more often than they are content, and printing them by accident is how internal margins reach a customer.
If your workbook is really a dashboard, use native Excel export. This engine is built for grids of text and numbers, and a page of labeled frames where your charts used to be helps nobody.
Zero-Trust: Your Financial Data Never Reaches Our Server
A spreadsheet is usually the most sensitive file a business owns. Payroll, a cap table, a management account, next year pricing: all of it is one upload away from a disk you do not administer, because most online PDF sites are an upload form in front of a headless server. The privacy policy on those sites is a promise about what the server does. It is not a statement about what the server can do.
This converter has no upload endpoint. Your workbook is decompressed and parsed by JavaScript on your own processor, laid out in local memory and handed back as a Blob download. The file exists on your hard drive and in your RAM, and nowhere else.
Run the security audit yourself
Open your browser Developer Tools and switch to the Network panel.
Convert a workbook and watch the outgoing requests.
You will see one small JSON ping carrying the tool name for anonymous analytics. No cell data leaves the machine.
The decisive test: turn off your Wi-Fi and hit convert. The engine still works offline, which no cloud converter can do.
Hidden metadata does not travel either. Because the PDF is built fresh from layout data rather than exported through Office, author names, department fields and total editing history never reach the output file. Only a creation date and a title are written.
When a Conversion Goes Wrong, and What It Means
Format errors are flagged on the file card before the run starts, so a rejected file never costs you a conversion.
Symptom
Cause
Fix
Legacy format rejected (.xls)
The file is a pre-2007 binary container rather than a ZIP archive of XML.
Open it in Excel or LibreOffice, save as .xlsx, and run it again.
Dates print as raw 5-digit numbers
The cell carries no date format in the source file, so the number is all there is to print.
Format the column as a date in Excel and save. The converter honors your formatting and never guesses at it.
Columns look squashed
Fit to width scaled a very wide sheet down toward the 35 percent floor.
Switch Column fitting to "Actual size" so the type keeps its weight and the extra columns move onto further pages.
A long text label is cut off
Overflow is set to cut at the column edge, or the neighboring cell holds something invisible such as a space.
Switch overflow to "Wrap it and make the row taller", or widen the column in Excel. Truncated cells are counted on the result screen.
A specific sheet is missing
The sheet is flagged hidden in the XML, or it holds no rows at all.
Unhide it in Excel and run again. Hidden sheets are skipped deliberately, because they usually hold working calculations.
Charts are missing entirely
Excel draws charts from data at display time and stores no picture of them.
Use native Microsoft export if the workbook is mainly a visual dashboard.
CSV imports as one giant column
The delimiter test had too few rows to reach a confident answer.
Open the CSV in Excel, save it as .xlsx, and convert that instead.
Characters replaced on result screen
The sheet uses an unsupported script such as CJK, Arabic or Hebrew.
European scripts, Cyrillic and Polish diacritics included, always report zero failures. For the rest, use native Excel export.
Pre-flight checks before client delivery
Convert the file and open the PDF beside your source spreadsheet.
Check the widest sheet first, then every column holding dates or currency.
Read the result screen. If it reports truncated cells, widen those columns and run it again.
Print one page. A layout error is far easier to see on paper than on a monitor at 80 percent zoom.
Frequently Asked Questions
Is my spreadsheet uploaded to your server when converting Excel to PDF?
No. This tool converts Excel to PDF locally inside your browser on a zero-trust model. Your workbook is never transmitted, queued or stored on our servers. Disconnect from the network after the page loads and the conversion still completes, which is the simplest proof anyone can run.
Will my dates and currency formatting be preserved in the PDF?
Yes. Excel stores dates as serial numbers counting days from 1900, so 46301 is all the cell really holds. The engine carries the full table of built-in format codes, which is what turns that number back into a readable date. Currency symbols, decimal places and negative figures in brackets print exactly as they appear in the source file.
Can I convert a CSV file to PDF using this tool?
Yes. Drop a CSV or TSV straight into the zone with no conversion to XLSX first. A strict RFC 4180 parser handles quoted fields, commas inside a value and newlines inside a cell, and the delimiter is detected across the first ten lines, so a European export saved with semicolons lines up correctly.
What happens if my Excel spreadsheet is too wide for a standard PDF page?
You decide. Fit to width scales the sheet down, to a floor of 35 percent, so every column lands on one page width. Actual size keeps the type at full weight and pushes the remaining columns onto further pages, printed as vertical strips: every page of the first group of columns, then the next group starting again at row one.
Are my Excel formulas converted, or just the final calculated results?
Only the results print. A formula cell stores both the equation and the value Excel calculated at the last save, and the cached value is what the engine reads. A PDF is a static document, so building a live calculation engine into a converter would add risk without adding anything you could use.
Are Excel charts and embedded images included in the final PDF?
No. Excel draws charts from the underlying data at the moment they are displayed, so the file holds the numbers and no picture of the chart. Floating images sit on top of the grid rather than inside it and are skipped for the same reason. If the workbook is mainly a dashboard, use native Office export.
How do I convert an older legacy .xls file to PDF?
Not directly here. The pre-2007 .xls format is a binary container rather than a ZIP archive of XML, and nothing in a browser can read it. Open the file in Microsoft Excel or LibreOffice, save it as .xlsx, then drop that file into the converter.
Can I merge multiple Excel spreadsheets into a single PDF file?
Yes, and that is the default. Drop several workbooks at once and they concatenate into one PDF in the order the cards appear on screen, with each sheet starting on its own page under its own name. It is the cleanest way to turn a month of supplier statements into one attachment. Switch off Merge all workbooks into one PDF for separate files.
Does the original author name and hidden metadata end up in the PDF?
No. An XLSX carries hidden properties such as the original author, department fields and total editing history. None of it reaches the output, because the PDF is built fresh from layout data rather than exported through Office. Only a creation date and a title are written into the file.
Are there file size limits or watermarks on the free converter?
There are no watermarks, logos or forced attribution links, and the output is cleared for commercial use. A batch holds 20 files and 100 MB, with 1 conversion every 12 hours for a visitor who is not signed in and 2 for a free account. CartHacker Premium raises the batch to 100 files and 500 MB and removes the counter.
The rest of the PDF suite
All of these run the same way: your file is read by JavaScript on your own machine, the work happens on your processor, and the result is handed back to you as a download that never existed anywhere else.
Free speed test and trust badges for Shopify and WooCommerce stores
Find the apps that slow your store down, by name and in milliseconds, then answer shoppers' doubts with trust badges under Add to cart. Both are free, with no card and no access to your store admin.
Change the link after printing and count the scans. 5 tracked codes on a free account, static codes unlimited.
Logo and colors
SVG for print
Wi-Fi and business cards
Free allowance used
That was your free operation for the next 12 hours. A free account doubles it in fifteen seconds.
Anonymous visitors get one operation per 12 hours, per network address. That is not a sales tactic, it is the only lever we have: this tool runs on your processor, not ours, so the run itself earns us nothing. An account tells us who you are, and the ceiling goes up the moment you have one. Your allowance resets in 12 h.
Two operations every 12 hours instead of oneEnough to finish a job. Merge the contract, then convert the scans, without waiting out a timer between the two.
Bigger batches, bigger filesTwenty files per batch and 100 MB in total. Whole scan folders stop bouncing off the drop zone.
The rest of the toolkitThe QR code generator with editable destinations and scan analytics, plus every tool we ship next, on the same account.
Still nothing uploadedAn account changes what you are allowed to run. It does not change where your files are processed, which is still your own machine.
No credit card, no trial period, no sales call. Join with Google, GitHub, Facebook or email.
Both free operations used
You have used both operations in this 12 hour window. Premium removes the counter entirely.
Free accounts get two operations per 12 hours, and yours reset in 12 h. Waiting costs you nothing and is a completely reasonable choice. If PDF work is a weekly job rather than a one-off, the counter is the wrong tool for you and Premium takes it off the page.
No operation counter at allMerge four hundred purchase orders on a Tuesday afternoon. Premium removes the 12 hour window instead of widening it.
100 files and 500 MB per batchBuilt for the archive job nobody wants: a year of invoices, a full product photo shoot, an entire scanned lease.
Still nothing uploadedPremium changes how much you can run. Every file is still read and written on your own machine.