ExcelTool.io

Sample Excel Files & Test Fixtures

Free, license-clean workbooks for testing viewers, converters, protection handling, and spreadsheet pipelines. Every file is CC0, generated by a committed script, verified by automated tests, and published with its SHA-256 checksum.

General-purpose viewer samples

sample-budget.xlsxXLSX · 20.7 KBDownload

Two worksheets, SUM/variance formulas with cached values, typed columns. General-purpose sample for viewers, converters, and the compare tool.

/excel-viewer:
Opens with two sheet tabs; formula cells show their last calculated value.
/excel-to-csv:
Exports either worksheet to CSV with all rows intact.
/excel-compare:
Use as the 'before' file against an edited copy to see cell-level differences.
sha256: f3dd62ebfc8a0c33
merged-formats.xlsxXLSX · 17.6 KBDownload

Merged title/header ranges, a frozen top row, currency/percent/date number formats, and custom column widths - exercises exactly the metadata a data-view renderer keeps or drops.

/excel-viewer:
Merged ranges render as merged cells, columns keep their relative widths, and formatted numbers display as $1,234.00 / 34.2% / 2026-07-17.
/excel-to-html:
Merged ranges become colspan/rowspan in the exported table.
sha256: e34069ed20f69d66

Compare & cleanup samples

sample-budget-v2.xlsxXLSX · 21.0 KBDownload

An edited copy of sample-budget.xlsx: changed amounts on both sheets, one renamed description, and one added transaction. Pairs with the original for diff/compare demos.

/excel-compare:
Against sample-budget.xlsx it reports the changed cells on Summary and Transactions plus the added Pharmacy row.
sha256: 509cde9db4b98b81
messy-data.xlsxXLSX · 17.6 KBDownload

A contact list with exact duplicates, case-variant duplicates, stray whitespace, inconsistent casing, and blank rows - the classic cleanup workload.

/excel-data-cleaner:
Trim, case normalization, and blank-row removal produce a clean list.
/remove-duplicates-excel:
Dedupe on Email with trim and case-insensitive matching removes the duplicate rows.
sha256: 8999fead17b1d52c

Protection fixtures

Both fixtures use the intentionally public password excel123 so protection can be applied, verified, and removed in tests. Sheet and workbook protection are editing locks with a legacy 16-bit hash - not encryption - which is why they can be removed without the password.

protected-sample.xlsxXLSX · 21.1 KB · password: excel123Download

Worksheet protection (<sheetProtection> with the legacy 16-bit password hash) on both sheets. The cells are locked against editing but the data is fully readable.

/excel-password-remover:
Reports both sheets as protected and returns an unlocked copy without needing the password.
/excel-viewer:
Opens normally - sheet protection restricts editing, not reading.
sha256: d316e86570df5704
workbook-protected.xlsxXLSX · 20.9 KB · password: excel123Download

Workbook structure protection (<workbookProtection lockStructure="1">). Sheets cannot be added, deleted, renamed, moved, or unhidden in Excel until it is removed.

/excel-password-remover:
Detects workbook protection and returns a copy with the structure unlocked.
/excel-viewer:
Opens normally - structure protection does not restrict reading.
sha256: 8d40b58fa2604a44

Macro-extension fixture

macro-extension.xlsmXLSM · 20.8 KBDownload

A .xlsm package with NO VBA project inside: the macro-enabled extension and content type without any macro code. Shows that the extension alone doesn't mean a file contains macros - and is safe to hand to any macro-handling tool.

/xlsm-viewer:
Opens like any workbook; there are no macros to (not) run.
/excel-macro-remover:
Reports no VBA project to remove.
sha256: 6f217a93840f139f

Why there is no encrypted sample file

Excel has three unrelated locking mechanisms, and only two of them appear in this lab:

  • Worksheet protection (<sheetProtection>) locks cells within a sheet against editing. The password is stored as a legacy 16-bit hash in the sheet XML.
  • Workbook structure protection (<workbookProtection>) stops sheets being added, deleted, renamed, moved, or unhidden. Same hash scheme, stored in xl/workbook.xml.
  • File-open encryption (“Encrypt with Password”) is real cryptography: the entire package is encrypted with AES per Microsoft's MS-OFFCRYPTO Agile Encryption specification. Without the password the content is unrecoverable.

An encrypted fixture with a published password would demonstrate nothing that the protection fixtures don't already show, and one without a password would just be noise. If you need an encrypted test file, make one in seconds: open any fixture in desktop Excel and choose File → Info → Protect Workbook → Encrypt with Password.

How protection is stored in the file format

An .xlsx or .xlsm file is a ZIP package of XML parts defined by ECMA-376 (Office Open XML). Worksheet protection is a single self-closing element inside the worksheet part, and workbook protection is its sibling in the workbook part. You can see this yourself: rename a protected fixture to .zip, open xl/worksheets/sheet1.xml, and find the <sheetProtection> record. File-open encryption is different: it wraps the whole package in a CFB container per MS-OFFCRYPTO, so there is no readable XML until the file is decrypted. Microsoft's own protection and security guidance draws the same line: worksheet protection is not a security feature, encryption is.

Verifying downloads

The canonical checksums live in manifest.json alongside the files. After downloading, compare:

# macOS / Linux
shasum -a 256 sample-budget.xlsx

# Windows
CertUtil -hashfile sample-budget.xlsx SHA256

Frequently Asked Questions

Related Tools