From c8916de0b93e2e7e0b46b4f130b0da08acf43a2c Mon Sep 17 00:00:00 2001 From: Adam Tuttle Date: Mon, 19 Dec 2011 01:29:52 -0500 Subject: [PATCH] CFSpreadsheet contrib by @NathanStrutz. Thanks! --- spreadsheet.cfc | 67 +++++++++++++++++++++++++++++++++++++++ tests/SpreadsheetTest.cfc | 64 +++++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 spreadsheet.cfc create mode 100644 tests/SpreadsheetTest.cfc diff --git a/spreadsheet.cfc b/spreadsheet.cfc new file mode 100644 index 0000000..8d05aac --- /dev/null +++ b/spreadsheet.cfc @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/SpreadsheetTest.cfc b/tests/SpreadsheetTest.cfc new file mode 100644 index 0000000..ef9cf2e --- /dev/null +++ b/tests/SpreadsheetTest.cfc @@ -0,0 +1,64 @@ +component extends="mxunit.framework.TestCase" { + + + function testSpreadsheet() { + var spreadsheet = createObject("component", "CFScript-Community-Components.spreadsheet"); + + var testFile = getTempDirectory() & "spreadsheet-unittest.xls"; + if(fileExists(testFile)) { + fileDelete(testFile); + } + + var dataToWrite = queryNew("ColumnA,ColumnB,ColumnC"); + queryAddRow(dataToWrite, 3); + dataToWrite.ColumnA[1] = "One"; + dataToWrite.ColumnB[1] = 1; + dataToWrite.ColumnC[1] = "Uno"; + dataToWrite.ColumnA[2] = "Two"; + dataToWrite.ColumnB[2] = 2; + dataToWrite.ColumnC[2] = "Dos"; + dataToWrite.ColumnA[3] = "Three"; + dataToWrite.ColumnB[3] = 3; + dataToWrite.ColumnC[3] = "Tres"; + + spreadsheet.write( + filename = testFile, + query = dataToWrite + ); + + var spreadsheetInfo = spreadsheet.readInfo( + src = testFile + ); + + assertTrue(structKeyExists(spreadsheetInfo, "summaryInfo")); + assertEquals(spreadsheetInfo.summaryInfo.sheets, 1); + + spreadsheet.update( + filename = testfile, + query = dataToWrite, + sheetname = "blah" + ); + + var spreadsheetInfo = spreadsheet.readInfo( + src = testFile + ); + + assertTrue(structKeyExists(spreadsheetInfo, "summaryInfo")); + assertEquals(spreadsheetInfo.summaryInfo.sheets, 2); + + + var spreadsheetData = spreadsheet.readQuery( + src = testfile, + excludeHeaderRow = true, + headerRow = 1 + ); + + assertTrue(isQuery(spreadsheetData)); + assertEquals(spreadsheetData.ColumnA[3], "Three"); + + if(fileExists(testFile)) { + fileDelete(testFile); + } + } + +} \ No newline at end of file