簡體   English   中英

使用查詢創建具有多個工作表的工作簿

[英]Create workbook with multiple sheets from Queries

我正在使用ColdFusion 2016,並且發現我所使用的服務器僅具有CF9,對此我還很陌生。 我一直在努力更新現有代碼,以適應用戶現在的需求。 到目前為止,我已經做到了,但是這超出了我的范圍。 我有一個網站,可以用一張紙生成一個Excel工作簿。 它使用HTML和查詢來創建它。 從A1中的查詢名稱開始,A3中的報告日期開始,A5:H5中的表標題然后A6:H53中的數據開始(確切的長度可能有所不同,但始終在A-H列中)。 我將發布用於創建工作簿的內容。 我想做的是使用3個以上的查詢向工作簿中添加3個以上的工作表。 我試圖添加一個我在這里找到的功能,但效果不佳。 我嘗試對現有代碼進行一些修改,以嘗試使用所有4個查詢,這並不令人高興。

任何幫助,將不勝感激。 讓我知道是否需要添加更多細節。 這是代碼:(我添加了一些注釋,試圖使它正常工作)

<cfsilent>
<!--- *******************************************************************
Filename:   execSummary_Excel.cfm, v1.0 03/07/2012
Created By: Original Writer
Description:    Excel report export for Executive Summary Report.       
Change History:
Date........Name...........Description of Change........................
08/01/2012  Original Writer Added committed column.
02/28/2013  Original Writer Added stateGM and GM.
*************************************************************************--->
<cfinvoke component="financial.financial" method="getExecSummary" returnvariable="qExecSummary">
    <cfinvokeargument name="level" value="#URL.level#" />
    <cfinvokeargument name="stateGM" value="#URL.stateGM#" />
    <cfinvokeargument name="GM" value="#URL.GM#" />
    <cfinvokeargument name="engVP" value="#URL.engVP#" />
    <cfinvokeargument name="engDir" value="#URL.engDir#" />
</cfinvoke>
<!---Added this to test if I can get more than one sheet to the Workbook--->
<cfinvoke component="financial.financial" method="getExecSummary_OLD" returnvariable="qExecSummary_OLD">
    <cfinvokeargument name="level" value="#URL.level#" />
    <cfinvokeargument name="stateGM" value="#URL.stateGM#" />
    <cfinvokeargument name="GM" value="#URL.GM#" />
    <cfinvokeargument name="engVP" value="#URL.engVP#" />
    <cfinvokeargument name="engDir" value="#URL.engDir#" />
</cfinvoke>
<!--- Get Report Date since qExecSummary is more complex than the other report queries --->
<cfquery name="qRpt_Date" datasource="#application.dsn#">
    SELECT DISTINCT rpt_date
    FROM fin_data
</cfquery>
<cfsetting requesttimeout="5000" />
</cfsilent>
<!---Added this as a function that should allow me to use multiple queries and create a workbook with more than one sheet--->
<cfscript>
    //Create new workbook with one sheet
    //by default that sheet is the active sheet
    Workbook = SpreadsheetNew("ExecSummary");
    //Add Data to the sheet
    format1.bold="true";
    formatNum.dataformat="0.00%";
    Spreadsheetformatcell(Workbook,format1,1,1);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    Spreadsheetformatcell(Workbook,format1,3,1);
    SpreadSheetSetCellValue(Workbook,"#dateFormat(now(),'mm/dd/yyyy')#",3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);
        arr="Here";
        writedump(arr);
    //if (qExecSummary.recordCount) {
    //  rowNum = 6;
    //  arr="Here";
    //  writedump(rowNum);
        //alert(qExecSummary.recordCount);
        //for(dataRow in qExecSummary){
            //SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_Date, 'mm/dd/yyyy'),rowNum,1);
            //SpreadSheetSetCellValue(Workbook,dataRow.responsible,rowNum,2);
            //SpreadSheetSetCellValue(Workbook,dataRow.name,rowNum,3);
            //SpreadSheetSetCellValue(Workbook,dataRow.Description,rowNum,4);
            //SpreadSheetSetCellValue(Workbook,dataRow.bud_sum,rowNum,5);
            //SpreadSheetSetCellValue(Workbook,dataRow.committed,rowNum,6);
            //SpreadSheetSetCellValue(Workbook,dataRow.Spent_YTD,rowNum,7);
            /*if (qExecSummary.bud_sum NEQ 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                //percentSpent="#(qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100#";
                SpreadSheetSetCellValue(Workbook,(dataRow.Spent_YTD/dataRow.bud_sum)*100,rowNum,8);
            }
            else {*/
                //SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            //}
            //rowNum++;
        //}
        //End of WriteOutput
    //} else {
    //  SpreadSheetAddRows(Workbook,"No results for your criteria.");
    //} 
</cfscript>
<!---
<cffunction name="QueriesToXLS" access="public">
    <cfargument name="queryArr" required="true">
    <cfargument name="sheetNameArr" required="false">
    <cfset tempPath="C:\Temp\ExecutiveSummary" & ".xls">
    <cfset counter= 1>
    <cfloop array="#ARGUMENTS.queryArr#" index="i" >
        <cfset sheetName="Sheet#counter#">
        <cfif isDefined("ARGUMENTS.sheetNameArr")>
            <cfset sheetName=ARGUMENTS.sheetNameArr[counter]>
        </cfif>
        <cfspreadsheet action="update" filename="#tempPath#" query="i" sheetName="#sheetName#"/>
        <cfset counter += 1>
    </cfloop>
    <cfreturn SpreadsheetRead(tempPath)>
</cffunction>

<cfset xlsData = QueriesToXLS([qExecSummary,qExecSummary],["ExecutiveSummary","ExecutiveSummaryOLD"])>
--->

<cfheader name="Content-Disposition" value='attachment; filename="execSummaryNew.xls"'>
<!---cfcontent type="application/msexcel" variable="#SpreadsheetReadBinary(xlsData)#" reset="true"--->

<cfcontent type="application/vnd.ms-excel"> <!---This is where the application type is being set to Excel--->
<!---html xmlns:x="urn:schemas-microsoft-com:office:excel">
<head>

</head>
<h2>Executive Summary Report</h2>
<cfoutput>
<p>#dateFormat(now(), 'mm/dd/yyyy')#</p>
</cfoutput>
<table id="tableOne" class="yui" cellspacing="0" cellpadding="5">
<thead>
<tr>
    <th>Data Date</th>
    <th>Level</th>
    <th>Name</th>
    <th>Description</th>                    
    <th>Budget</th>
    <th>Committed</th>
    <th>Spent YTD</th>
    <th>% Spent</th>
</tr>
</thead>
<cfif qExecSummary.recordCount>
<tbody>
<cfoutput query="qExecSummary">
<tr>
    <td>#dateFormat(qRpt_Date.rpt_Date, 'mm/dd/yyyy')#</td>
    <td>#qExecSummary.responsible#</td>
    <td>#qExecSummary.name#</td>
    <td>#qExecSummary.Description#</td>
    <td>#qExecSummary.bud_sum#</td>
    <td>#qExecSummary.committed#</td>
    <td>#qExecSummary.Spent_YTD#</td>
    <td><cfif qExecSummary.bud_sum NEQ 0> 
            #numberFormat((qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100,"9.9")#%
        <cfelse>
            0
        </cfif> 
    </td>
</tr>
</cfoutput>
</tbody>
<cfelse>
<tr>
    <td colspan="9">No results for your criteria.</td>
</tr>
</cfif>
</table>
</html--->

編輯

我已嘗試按照重復項中所提問題的答案進行操作。 我無法使其與我擁有的查詢一起使用。 我添加了以下代碼來代替我擁有的腳本:

編輯2

更新了此腳本,仍然無法正常工作。 writeOutput()上發生錯誤。我不確定如何使用查詢來創建行數據嗎?

    <cfscript>
    //Create new workbook with one sheet
    //by default that sheet is the active sheet
    Workbook = SpreadsheetNew("ExecSummary");
    //Add Data to the sheet
    format1.bold="true";
    formatNum.dataformat="0.00%";
    Spreadsheetformatcell(Workbook,format1,1,1);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    Spreadsheetformatcell(Workbook,format1,3,1);
    SpreadSheetSetCellValue(Workbook,"#dateFormat(now(),'mm/dd/yyyy')#",3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);
    if (qExecSummary.recordCount) {
        rowNum = 6;
        //writeOutput(query="qExecSummary");
        for(dataRow in qExecSummary){
            SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_Date, 'mm/dd/yyyy'),rowNum,1);
            SpreadSheetSetCellValue(Workbook,dataRow.responsible,rowNum,2);
            SpreadSheetSetCellValue(Workbook,dataRow.name,rowNum,3);
            SpreadSheetSetCellValue(Workbook,dataRow.Description,rowNum,4);
            SpreadSheetSetCellValue(Workbook,dataRow.bud_sum,rowNum,5);
            SpreadSheetSetCellValue(Workbook,dataRow.committed,rowNum,6);
            SpreadSheetSetCellValue(Workbook,dataRow.Spent_YTD,rowNum,7);
            if (qExecSummary.bud_sum NEQ 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                percentSpent="#(qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100#";
                SpreadSheetSetCellValue(Workbook,(qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100,rowNum,8);
            }
            else {
                SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            }
            rowNum++;
        }
        //End of WriteOutput
    } else {
        SpreadSheetAddRows(Workbook,"No results for your criteria.");
    }   
</cfscript>

但是,它在與Output一起的行中顯示錯誤。 我不知道將其更改為什么。 我已經搜索了cfscript標記中的可用內容,並找到 ,但是沒有什么看起來像是有用的?

更新到<cfscript>現在出現此錯誤:

來自新更新的腳本的錯誤消息

最后編輯

這是工作腳本:

<cfsilent>
<!--- *******************************************************************
Filename:   execSummary_Excel.cfm, v1.0 03/07/2012
Created By: Original Writer
Description:    Excel report export for Executive Summary Report.       
Change History:
Date........Name...........Description of Change........................
08/01/2012  Original Writer Added committed column.
02/28/2013  Original Writer Added stateGM and GM.
*************************************************************************--->
<cfinvoke component="financial.financial" method="getExecSummary" returnvariable="qExecSummary">
    <cfinvokeargument name="level" value="#URL.level#" />
    <cfinvokeargument name="stateGM" value="#URL.stateGM#" />
    <cfinvokeargument name="GM" value="#URL.GM#" />
    <cfinvokeargument name="engVP" value="#URL.engVP#" />
    <cfinvokeargument name="engDir" value="#URL.engDir#" />
</cfinvoke>
<!---Added this to test if I can get more than one sheet to the Workbook--->
<cfinvoke component="financial.financial" method="getExecSummary331" returnvariable="qExecSummary331">
    <cfinvokeargument name="level" value="#URL.level#" />
    <cfinvokeargument name="stateGM" value="#URL.stateGM#" />
    <cfinvokeargument name="GM" value="#URL.GM#" />
    <cfinvokeargument name="engVP" value="#URL.engVP#" />
    <cfinvokeargument name="engDir" value="#URL.engDir#" />
</cfinvoke>
<!--- Get Report Date since qExecSummary is more complex than the other report queries --->
<cfquery name="qRpt_Date" datasource="#application.dsn#">
    SELECT DISTINCT rpt_date
    FROM fin_data
</cfquery>
<cfsetting requesttimeout="5000" />
</cfsilent>

<!---Added this as a function that should allow me to use multiple queries and create a workbook with more than one sheet--->
<cfscript>
    //Create new workbook with one sheet
    //by default that sheet is the active sheet
    Workbook = SpreadsheetNew("ExecSummary");
    //Add Data to the sheet
    //Formatting
    format1.bold="true";
    format1.fontsize=12;
    format1.font="Calibri";
    format2.bold="true";
    format2.fontsize=18;
    format2.font="Calibri";
    formatNum.dataformat="0.0%";
    //adding the Headers
    Spreadsheetformatcell(Workbook,format2,1,1);
    Spreadsheetformatcell(Workbook,format1,3,1);
    Spreadsheetformatcell(Workbook,format1,5,1);
    Spreadsheetformatcell(Workbook,format1,5,2);
    Spreadsheetformatcell(Workbook,format1,5,3);
    Spreadsheetformatcell(Workbook,format1,5,4);
    Spreadsheetformatcell(Workbook,format1,5,5);
    Spreadsheetformatcell(Workbook,format1,5,6);
    Spreadsheetformatcell(Workbook,format1,5,7);
    Spreadsheetformatcell(Workbook,format1,5,8);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    SpreadSheetSetCellValue(Workbook,"#dateFormat(now(),'mm/dd/yyyy')#",3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);
        arr=server.ColdFusion.ProductVersion;
    if (qExecSummary.recordCount) {
        rowNum = 6;
        do {
            SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_date,'mm/dd/yyy'),rowNum,1);
            SpreadSheetSetCellValue(Workbook,qExecSummary.responsible[rowNum-5],rowNum,2);
            SpreadSheetSetCellValue(Workbook,qExecSummary.name[rowNum-5],rowNum,3);
            SpreadSheetSetCellValue(Workbook,qExecSummary.Description[rowNum-5],rowNum,4);
            SpreadSheetSetCellValue(Workbook,qExecSummary.bud_sum[rowNum-5],rowNum,5);
            SpreadSheetSetCellValue(Workbook,qExecSummary.committed[rowNum-5],rowNum,6);
            SpreadSheetSetCellValue(Workbook,qExecSummary.Spent_YTD[rowNum-5],rowNum,7);
            if (qExecSummary.bud_sum[rowNum-5] NEQ 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                SpreadSheetSetCellValue(Workbook,(qExecSummary.Spent_YTD[rowNum-5]/qExecSummary.bud_sum[rowNum-5]),rowNum,8);
            }
            else {
                SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            }
            rowNum++;
        } while (rowNum - 6 LT qExecSummary.recordCount);
    } else {
        SpreadSheetAddRows(Workbook,"No results for your criteria.");
    }   
    SpreadsheetCreateSheet(Workbook,"ExecSummaryTest");
    SpreadsheetSetActiveSheet(Workbook,"ExecSummaryTest");
    //Formatting
    format1.bold="true";
    format1.fontsize=12;
    format1.font="Calibri";
    format2.bold="true";
    format2.fontsize=18;
    format2.font="Calibri";
    formatNum.dataformat="0.0%";

    Spreadsheetformatcell(Workbook,format2,1,1);
    Spreadsheetformatcell(Workbook,format1,3,1);
    Spreadsheetformatcell(Workbook,format1,5,1);
    Spreadsheetformatcell(Workbook,format1,5,2);
    Spreadsheetformatcell(Workbook,format1,5,3);
    Spreadsheetformatcell(Workbook,format1,5,4);
    Spreadsheetformatcell(Workbook,format1,5,5);
    Spreadsheetformatcell(Workbook,format1,5,6);
    Spreadsheetformatcell(Workbook,format1,5,7);
    Spreadsheetformatcell(Workbook,format1,5,8);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    SpreadSheetSetCellValue(Workbook,"#dateFormat(now(),'mm/dd/yyyy')#",3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);
        arr=server.ColdFusion.ProductVersion;
    if (qExecSummary331.recordCount) {
        rowNum = 6; 
        do {
            SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_date,'mm/dd/yyy'),rowNum,1);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.responsible[rowNum-5],rowNum,2);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.name[rowNum-5],rowNum,3);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.Description[rowNum-5],rowNum,4);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.bud_sum[rowNum-5],rowNum,5);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.committed[rowNum-5],rowNum,6);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.Spent_YTD[rowNum-5],rowNum,7);
            if (qExecSummary331.bud_sum[rowNum-5] NEQ 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                SpreadSheetSetCellValue(Workbook,(qExecSummary331.Spent_YTD[rowNum-5]/qExecSummary331.bud_sum[rowNum-5]),rowNum,8);
            }
            else {
                SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            }
            rowNum++;
        } while (rowNum - 6 LT qExecSummary331.recordCount);
    } else {
        SpreadSheetAddRows(Workbook,"No results for your criteria.");
    }
    SpreadsheetSetActiveSheet(Workbook,"ExecSummary");
</cfscript>

<cfheader name="Content-Disposition" value='attachment; filename="execSummaryNew.xls"'>
<cfcontent type="application/msexcel" variable="#SpreadsheetReadBinary(Workbook)#" reset="true">

WriteOutput()用於在屏幕上顯示數據。 要將數據添加到電子表格,您需要使用電子表格功能。 在您的方案中,可以使用for / in循環遍歷查詢行。 然后使用SpreadSheetSetCellValue(sheet,value,row,col)填充單個單元格。

更新1:

如果您運行下面的代碼(來自“ Edit 2”),則在全新的.cfm腳本中,您將看到它運行正常。 因此,任何錯誤都必須來自代碼的不同部分。 如果您在查找錯誤時遇到麻煩,建議您從頭開始。 使用非常簡單的代碼創建一個全新的腳本:僅是生成電子表格所需的最少代碼。 省略任何其他功能,例如下載,下載等,並讓基本代碼首先生效。

<cfscript>
    // FOR DEMO ONLY: Create manual queries
    qRpt_Date = queryNew("");
    queryAddColumn(qRpt_Date, "Rpt_Date", [now()]);
    qExecSummary = queryNew("");
    queryAddColumn(qExecSummary, "responsible", [1,12,13]);
    queryAddColumn(qExecSummary, "bud_sum", [0,50,100]);
    queryAddColumn(qExecSummary, "Spent_YTD", [0,50,100]);
    queryAddColumn(qExecSummary, "Name", ["Name A","Name B","Name C"]);
    queryAddColumn(qExecSummary, "Description", ["Description A","DescriptionB","Description C"]);
    queryAddColumn(qExecSummary, "Committed", [0,50,100]);


    //Create new workbook with one sheet
    //by default that sheet is the active sheet
    Workbook = SpreadsheetNew("ExecSummary");

    //Add Headers
    headerTextFormat.bold=true;
    Spreadsheetformatcell(Workbook,headerTextFormat,1,1);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    Spreadsheetformatcell(Workbook,headerTextFormat,3,1);
    SpreadSheetSetCellValue(Workbook, dateFormat(now(),'mm/dd/yyyy'),3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);

    //Add data detail
    if (qExecSummary.recordCount) {
        // Start populating the spreadsheet on this row number
        // Change as needed.
        rowNum = 6;

        // Loop through query rows
        for(dataRow in qExecSummary) {
            // add 
            SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_Date, 'mm/dd/yyyy'),rowNum,1);
            SpreadSheetSetCellValue(Workbook,dataRow.responsible,rowNum,2);
            SpreadSheetSetCellValue(Workbook,dataRow.name,rowNum,3);
            SpreadSheetSetCellValue(Workbook,dataRow.Description,rowNum,4);
            SpreadSheetSetCellValue(Workbook,dataRow.bud_sum,rowNum,5);
            SpreadSheetSetCellValue(Workbook,dataRow.committed,rowNum,6);
            SpreadSheetSetCellValue(Workbook,dataRow.Spent_YTD,rowNum,7);
            if (qExecSummary.bud_sum != 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                SpreadSheetSetCellValue(Workbook,(qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100,rowNum,8);
            }
            else {
                SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            }
            rowNum++;
        }
        //End of WriteOutput
    } else {
        SpreadSheetAddRows(Workbook,"No results for your criteria.");
    }   

    //For test purposes, save the results to a file
    SpreadSheetWrite(Workbook, "c:/path/to/yourFile.xls", true);

    WriteOutput("Done!");
</cfscript>

更新2:

如注釋中所述,CF9不支持for..in查詢循環。 如果您使用的是舊版CF,則需要使用from/to循環。

// Loop through query rows
for(x = 1; x lte yourQueryName.recordCount; x++) {
    SpreadSheetSetCellValue(Workbook, yourQueryName.YourColumnName[x], theSheetRowNum, 1);
    // ...

    theSheetRowNum++;
} 

旁注,我個人更喜歡cfscript。 但是,如果您對CFML更加滿意,可以隨時重寫該示例 只需擺脫cfscript標記並替換:

<cfscript>
    SomeFunctionName(....); 
</cfscript>

與:

<cfset SomeFunctionName(....)>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM