From cfdb888b02e2a3d357e6bf70434ba97180532016 Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Fri, 13 Oct 2023 09:36:02 +0200 Subject: [PATCH] add excel testTable --- .../TestObjects.fs | 30 ++++++++++++++++++ tests/TestFiles/TestWorkbook_Excel.xlsx | Bin 0 -> 16341 bytes 2 files changed, 30 insertions(+) create mode 100644 tests/TestFiles/TestWorkbook_Excel.xlsx diff --git a/tests/FsSpreadsheet.ExcelIO.Tests/TestObjects.fs b/tests/FsSpreadsheet.ExcelIO.Tests/TestObjects.fs index 0be08089..e58c19cc 100644 --- a/tests/FsSpreadsheet.ExcelIO.Tests/TestObjects.fs +++ b/tests/FsSpreadsheet.ExcelIO.Tests/TestObjects.fs @@ -2,6 +2,36 @@ open FsSpreadsheet +module CrossIOTests = + + let testFolder = "TestFiles" + + let excelFileName = "TestWorkbook_Excel.xlsx" + let libreFileName = "TestWorkbook_Libre.xlsx" + let exceljsFileName = "TestWorkbook_ExcelJS.xlsx" + let closesXMLFileName = "TestWorkbook_ClosedXML.xlsx" + let FsSpreadsheetFileName = "TestWorkbook_FsSpreadsheet.xlsx" + + module Sheet1 = + + [] + let sheetName = "WithTable" + [] + let tableName = "MyTable" + + module Sheet2 = + + [] + let sheetName = "Tableless" + + module Sheet3 = + + [] + let sheetName = "WithTable_Duplicate" + [] + let tableName = "MyOtherTable" + + let sheet1Name = "MySheet1" let sheet2Name = "MySheet2" diff --git a/tests/TestFiles/TestWorkbook_Excel.xlsx b/tests/TestFiles/TestWorkbook_Excel.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..dca9ebf9b9069179ae201c75830ad7fd58a275fa GIT binary patch literal 16341 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 literal 0 HcmV?d00001