Description
Reads a sheet from a spreadsheet by executing a user defined function for each row.
Returns
Processed streaming spreadsheet object.
History
Syntax
theFile=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetProcessInput.xlsx";
theFile1=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetProcessOutput.xlsx";
obj = streamingSpreadsheetNew("theSheet",4)
SpreadsheetAddRow(obj,"150,ENGL1,,",1,1);
SpreadsheetAddRow(obj,"150,ENGL2,97,Poetry 1",2,1);
SpreadsheetAddRow(obj,"150,ENGL,95,Poetry 1",i,1);
spreadsheetwrite(obj, theFile,"",true,false);
myFormat.underline = "true";
myFormat.alignment = "center";
secondFormat = StructNew();
secondFormat.color = "red";
secondFormat.bold = "true";
secondFormat.underline = "true";
secondFormat.alignment = "center";
secondFormat.font = "Arial";
function func(spreadsheetObj, row)
SpreadsheetFormatRow(spreadsheetObj, myFormat, row);
SpreadsheetFormatRow(spreadsheetObj, secondFormat, row);
processedSpreadsheet = StreamingSpreadsheetProcess(#theFile#, func)
writeoutput(processedSpreadsheet.SummaryInfo.SPREADSHEETTYPE)
spreadsheetwrite(processedSpreadsheet, "#theFile1#", "", "yes", "no")
<cfscript>
theFile=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetProcessInput.xlsx";
theFile1=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetProcessOutput.xlsx";
obj = streamingSpreadsheetNew("theSheet",4)
SpreadsheetAddRow(obj,"150,ENGL1,,",1,1);
SpreadsheetAddRow(obj,"150,ENGL2,97,Poetry 1",2,1);
for ( i=3;i<=10000;i++){
SpreadsheetAddRow(obj,"150,ENGL,95,Poetry 1",i,1);
}
spreadsheetwrite(obj, theFile,"",true,false);
myFormat = StructNew();
myFormat.color = "blue";
myFormat.bold = "true";
myFormat.underline = "true";
myFormat.alignment = "center";
myFormat.font = "Arial";
secondFormat = StructNew();
secondFormat.color = "red";
secondFormat.bold = "true";
secondFormat.underline = "true";
secondFormat.alignment = "center";
secondFormat.font = "Arial";
function func(spreadsheetObj, row)
{
if(row % 2 eq 1){
SpreadsheetFormatRow(spreadsheetObj, myFormat, row);
}else{
SpreadsheetFormatRow(spreadsheetObj, secondFormat, row);
}
return spreadsheetObj
}
processedSpreadsheet = StreamingSpreadsheetProcess(#theFile#, func)
writeoutput(processedSpreadsheet.SummaryInfo.SPREADSHEETTYPE)
spreadsheetwrite(processedSpreadsheet, "#theFile1#", "", "yes", "no")
</cfscript>
<cfscript>
theFile=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetProcessInput.xlsx";
theFile1=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetProcessOutput.xlsx";
obj = streamingSpreadsheetNew("theSheet",4)
SpreadsheetAddRow(obj,"150,ENGL1,,",1,1);
SpreadsheetAddRow(obj,"150,ENGL2,97,Poetry 1",2,1);
for ( i=3;i<=10000;i++){
SpreadsheetAddRow(obj,"150,ENGL,95,Poetry 1",i,1);
}
spreadsheetwrite(obj, theFile,"",true,false);
myFormat = StructNew();
myFormat.color = "blue";
myFormat.bold = "true";
myFormat.underline = "true";
myFormat.alignment = "center";
myFormat.font = "Arial";
secondFormat = StructNew();
secondFormat.color = "red";
secondFormat.bold = "true";
secondFormat.underline = "true";
secondFormat.alignment = "center";
secondFormat.font = "Arial";
function func(spreadsheetObj, row)
{
if(row % 2 eq 1){
SpreadsheetFormatRow(spreadsheetObj, myFormat, row);
}else{
SpreadsheetFormatRow(spreadsheetObj, secondFormat, row);
}
return spreadsheetObj
}
processedSpreadsheet = StreamingSpreadsheetProcess(#theFile#, func)
writeoutput(processedSpreadsheet.SummaryInfo.SPREADSHEETTYPE)
spreadsheetwrite(processedSpreadsheet, "#theFile1#", "", "yes", "no")
</cfscript>
The script creates a streaming spreadsheet, applies conditional formatting to its rows, and saves the processed spreadsheet. The formatting options are defined as structs. The UDF func accepts the spreadsheet object and the row index as parameters. The function checks for even and odd row index and applies cell formatting accordingly. The streamingSpreadsheetProcess function then processes the spreadsheet using the formatting UDF. The resultant spreadsheet has the defined formatting applied to it.
Output - truncated
theFile=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetInput.xlsx";
theFile1=GetDirectoryFromPath(GetCurrentTemplatePath()) &"streamingSpreadsheetOutput.xlsx";
obj = streamingSpreadsheetNew("theSheet",4)
SpreadsheetAddRow(obj,"150,ENGL1,1,",1,1);
SpreadsheetAddRow(obj,"150,ENGL2,97,Poetry 1",2,1);
for ( i=3;i<=100000;i++){
SpreadsheetAddRow(obj,"150,ENGL,95,Poetry 1",i,1);
spreadsheetwrite(obj, theFile,"",true,false);
myFormat.underline = "true";
myFormat.alignment = "center";
secondFormat = StructNew();
secondFormat.color = "red";
secondFormat.bold = "true";
secondFormat.underline = "true";
secondFormat.alignment = "center";
secondFormat.font = "Arial";
function func(spreadsheetObj, row)
SpreadsheetFormatRow(spreadsheetObj, myFormat, row);
SpreadsheetFormatRow(spreadsheetObj, secondFormat, row);
function writeResult(spreadsheetObj) {
spreadsheetwrite(spreadsheetObj, "#theFile1#", "", "yes", "no")
processedSpreadsheet = StreamingSpreadsheetProcess(#theFile#, func,{"sheetName":"theSheet", "async":true})
processedSpreadsheet.then(writeResult)
data =processedSpreadsheet.get();
writeoutput(data.SummaryInfo.SPREADSHEETTYPE)
writeoutput(data.SummaryInfo.SHEETNAMES)
fileExist = FileExists(theFile1);
writeOutput("#fileExist#")
<cfscript>
theFile=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetInput.xlsx";
theFile1=GetDirectoryFromPath(GetCurrentTemplatePath()) &"streamingSpreadsheetOutput.xlsx";
obj = streamingSpreadsheetNew("theSheet",4)
SpreadsheetAddRow(obj,"150,ENGL1,1,",1,1);
SpreadsheetAddRow(obj,"150,ENGL2,97,Poetry 1",2,1);
for ( i=3;i<=100000;i++){
SpreadsheetAddRow(obj,"150,ENGL,95,Poetry 1",i,1);
}
spreadsheetwrite(obj, theFile,"",true,false);
myFormat = StructNew();
myFormat.color = "blue";
myFormat.bold = "true";
myFormat.underline = "true";
myFormat.alignment = "center";
myFormat.font = "Arial";
secondFormat = StructNew();
secondFormat.color = "red";
secondFormat.bold = "true";
secondFormat.underline = "true";
secondFormat.alignment = "center";
secondFormat.font = "Arial";
function func(spreadsheetObj, row)
{
if(row % 2 eq 1){
SpreadsheetFormatRow(spreadsheetObj, myFormat, row);
}else{
SpreadsheetFormatRow(spreadsheetObj, secondFormat, row);
}
return spreadsheetObj
}
function writeResult(spreadsheetObj) {
spreadsheetwrite(spreadsheetObj, "#theFile1#", "", "yes", "no")
}
processedSpreadsheet = StreamingSpreadsheetProcess(#theFile#, func,{"sheetName":"theSheet", "async":true})
processedSpreadsheet.then(writeResult)
data =processedSpreadsheet.get();
writeoutput(data.SummaryInfo.SPREADSHEETTYPE)
writeOutput(" ")
writeoutput(data.SummaryInfo.SHEETNAMES)
fileExist = FileExists(theFile1);
writeOutput(" ")
writeOutput("#fileExist#")
writeOutput(" ")
</cfscript>
<cfscript>
theFile=GetDirectoryFromPath(GetCurrentTemplatePath()) & "streamingSpreadsheetInput.xlsx";
theFile1=GetDirectoryFromPath(GetCurrentTemplatePath()) &"streamingSpreadsheetOutput.xlsx";
obj = streamingSpreadsheetNew("theSheet",4)
SpreadsheetAddRow(obj,"150,ENGL1,1,",1,1);
SpreadsheetAddRow(obj,"150,ENGL2,97,Poetry 1",2,1);
for ( i=3;i<=100000;i++){
SpreadsheetAddRow(obj,"150,ENGL,95,Poetry 1",i,1);
}
spreadsheetwrite(obj, theFile,"",true,false);
myFormat = StructNew();
myFormat.color = "blue";
myFormat.bold = "true";
myFormat.underline = "true";
myFormat.alignment = "center";
myFormat.font = "Arial";
secondFormat = StructNew();
secondFormat.color = "red";
secondFormat.bold = "true";
secondFormat.underline = "true";
secondFormat.alignment = "center";
secondFormat.font = "Arial";
function func(spreadsheetObj, row)
{
if(row % 2 eq 1){
SpreadsheetFormatRow(spreadsheetObj, myFormat, row);
}else{
SpreadsheetFormatRow(spreadsheetObj, secondFormat, row);
}
return spreadsheetObj
}
function writeResult(spreadsheetObj) {
spreadsheetwrite(spreadsheetObj, "#theFile1#", "", "yes", "no")
}
processedSpreadsheet = StreamingSpreadsheetProcess(#theFile#, func,{"sheetName":"theSheet", "async":true})
processedSpreadsheet.then(writeResult)
data =processedSpreadsheet.get();
writeoutput(data.SummaryInfo.SPREADSHEETTYPE)
writeOutput(" ")
writeoutput(data.SummaryInfo.SHEETNAMES)
fileExist = FileExists(theFile1);
writeOutput(" ")
writeOutput("#fileExist#")
writeOutput(" ")
</cfscript>