Extends Verify to allow verification of Excel documents via OpenXML.
Supports Excel (xlsx) and Word (docx) documents.
- Converts workbooks to CSV format for each worksheet
- Extracts formulas and displays them alongside cell values
- Captures document metadata (title, subject, creator, keywords, category, etc.)
- Supports date scrubbing and GUID scrubbing for deterministic tests
- Generates deterministic XLSX output using DeterministicIoPackaging
- Extracts document text content from paragraphs and tables
- Captures document properties (title, subject, creator, keywords, etc.)
- Captures custom document properties
- Extracts font information
- Generates deterministic DOCX output using DeterministicIoPackaging
See Milestones for release notes.
Entity Framework Extensions is a major sponsor and is proud to contribute to the development this project.
[ModuleInitializer]
public static void Initialize() =>
VerifyOpenXml.Initialize();[Test]
public Task VerifyExcel() =>
VerifyFile("sample.xlsx");[Test]
public Task VerifyExcelStream()
{
var stream = new MemoryStream(File.ReadAllBytes("sample.xlsx"));
return Verify(stream, "xlsx");
}[Test]
public Task VerifySpreadsheetDocument()
{
using var stream = File.OpenRead("sample.xlsx");
using var reader = SpreadsheetDocument.Open(stream, false);
return Verify(reader);
}0,First Name,Last Name,Gender,Country,Date,Age,Id,Formula
1,Dulce,Abril,Female,United States,2017-10-15,32,1562,G2+H21594 (G2+H2)
2,Mara,Hashimoto,Female,Great Britain,2016-08-16,25,1582,1607
3,Philip,Gent,Male,France,2015-05-21,36,2587,2623
4,Kathleen,Hanner,Female,United States,2017-10-15,25,3549,3574
5,Nereida,Magwood,Female,United States,2016-08-16,58,2468,2526
6,Gaston,Brumm,Male,United States,2015-05-21,24,2554,2578
[Test]
public Task VerifyWord() =>
VerifyFile("sample.docx");[Test]
public Task VerifyWordStream()
{
var stream = new MemoryStream(File.ReadAllBytes("sample.docx"));
return Verify(stream, "docx");
}[Test]
public Task VerifyWordprocessingDocument()
{
using var stream = File.OpenRead("sample.docx");
using var reader = WordprocessingDocument.Open(stream, false);
return Verify(reader);
}