Convert a Legacy XLS File to PDF

Converting an .xls file — Excel's binary 97–2003 workbook format — to PDF freezes the formatted cell values, borders, and charts of a legacy spreadsheet into fixed pages that need no spreadsheet software to read. Old workbooks bring their own quirks: stored page setup tuned for long-dead printers, macro security banners, and occasionally a four-year date shift from the classic Mac 1904 date system. This page covers exporting from modern Excel, the free LibreOffice route for machines without Office, and the checks worth making before you trust the output.

Why there is no one-click converter on this page

Reading the binary BIFF format, recalculating formulas, and paginating the grid takes a full spreadsheet engine that browsers do not expose to local pages. The desktop methods below convert legacy workbooks reliably.

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 an XLS to PDF (step by step)

Method 1 — Modern Excel (macros stay blocked)

  1. Open the .xls in modern Excel and leave the yellow security banner alone; exporting to PDF works fine with macros blocked.
  2. Open View → Page Break Preview — .xls files carry their original print areas and page breaks, often tuned for 1990s printers — and adjust them if the layout looks wrong.
  3. Ctrl-click the sheet tabs you want, or plan to select Entire workbook in the export options.
  4. Go to File → Export → Create PDF/XPS, click Options, choose Active sheet(s) or Entire workbook, and click Publish.

Method 2 — LibreOffice Calc (free, and reads BIFF directly)

Calc opens Excel 5.0/95 and 97–2003 binaries, honoring their stored print areas and page setup, and exports via File → Export As → Export as PDF. For a folder of inherited files:

soffice --headless --convert-to pdf --outdir ./out ledger-1998.xls
soffice --headless --convert-to pdf --outdir ./out *.xls

Headless mode never prompts about macros — it simply does not run them — which makes it the safest bulk route for workbooks of unknown origin.

Method 3 — Upgrade first, then export (when you also want to keep editing)

  1. Open the .xls, choose File → Save As and save a copy as .xlsx to escape the legacy format's limits.
  2. Verify formulas recalculate identically (watch for old analysis-toolpak functions), then export the .xlsx to PDF as usual.

How it works

An .xls file is an OLE2 compound document whose Workbook stream is a sequence of BIFF8 (Binary Interchange File Format) records: a bounded grid of at most 65,536 rows by 256 columns per sheet, cell records holding IEEE doubles or shared strings, formulas stored as reverse-Polish token streams, and a font and format table the cells index into. Print areas and page setup live in their own records — a SETUP record even stores the paper size code and scale factor chosen decades ago, which is why an old workbook "remembers" its page breaks.

A converter parses those records, recalculates the formula tokens, formats each value through its stored number format, and then paginates exactly as for a modern workbook: measuring formatted cells with printer font metrics, cutting the grid at the stored or computed page breaks, and writing each tile as vector PDF content — positioned text, border lines, and fills — so the output is searchable and crisp at any zoom. Legacy charts are Escher drawing objects; modern engines re-render them with current chart code, preserving the data but sometimes shifting default colors and fonts.

Two legacy traps deserve respect. XLM macros and VBA live in separate streams and are simply ignored by PDF export — no macro ever needs to run. And workbooks born on classic Mac Excel count days from January 1, 1904 instead of 1900; if the converting application misses the flag (or a human copies values between systems), every date in the PDF lands 1,462 days off. Check one known date before distributing the output.

Worked example: a 1998 payroll ledger

Test file: payroll-1998.xls, 1.4 MB — five sheets of monthly payroll runs (about 300 rows each), one summary sheet with two 3-D pie charts, an XLM macro sheet from Excel 4, and a stored print area of A1:J310 per sheet at 85% scale for an HP LaserJet 4. Excel 2021 opened it with the macro banner showing; without enabling anything, File → Export with Entire workbook produced payroll-1998.pdf, 268 KB, 34 pages — the stored 85% scale and print areas were honored, so the 1998 page breaks reproduced exactly, and the pie charts came out as vector graphics with slightly brighter default colors than the original screen rendering. The same file through soffice --headless converted in 3 seconds to a 291 KB, 34-page PDF with no macro prompt at all. A date spot-check confirmed the file used the standard 1900 system, so no adjustment was needed.

Frequently asked questions

Do I need to enable macros to convert an XLS to PDF?

No, exporting reads only the stored cell values and formatting, so leave macros disabled when the security banner appears. The resulting PDF contains no macro code, which also makes conversion a clean way to share data from a macro-laden workbook.

How do I convert an XLS to PDF without Excel?

LibreOffice Calc opens Excel 97-2003 binaries free and exports with File, Export As, Export as PDF, or unattended via soffice --headless --convert-to pdf ledger.xls. Calc reads the BIFF format directly, including its stored print areas and page setup.

Why do the page breaks land in odd places in my PDF?

Old .xls files carry page setup tuned for the printers and drivers of their era, and those stored breaks are honored by modern exporters. Open View, Page Break Preview, drag the blue break lines where you want them, then export again.

Will charts from Excel 97-2003 look sharp in the PDF?

Yes, legacy charts are stored as drawing objects and are re-rendered as vector graphics in the PDF, so they scale without pixelation. Modern Excel redraws them with its current chart engine, so colors and default fonts may differ subtly from the original screen appearance.

My XLS shows dates four years off — should I convert anyway?

Fix the dates first: workbooks created on classic Mac Excel use a 1904 date system, and the shift shows up when the file is opened under the default 1900 system. Toggle the 1904 setting in Excel's advanced options or Calc's calculation options, check the dates, then export.

Can a password-protected XLS be converted to PDF?

You need the password to open the file; once it is open, PDF export works normally. Note that legacy .xls encryption is weak by modern standards, so the password proves little about who has been able to read the file.

Related tools