2017-02-15 5 views
0

cfspreadsheetを使用して複数のタブで事前定義されたチャートを持つスプレッドシートを読み込もうとしていますが、データの処理に関しては変数が未定義です。私は、Adobeからの例を使用しましたcfspreadsheetが変数未定義エラーを引き起こしています

からhttp://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec17cba-7f87.html

を私はまた、他の例を見てきましたが、これらの例はcfspreadsheetとポイやJavaの組み合わせを使用して、私は、可能な場合にのみcfspreadsheetを使用することを好むだろう。問題がどこから来ているのか、私のコードを見ているすべてのアイデア?ありがとう。エラーが発生したのはここ

<cfcontent type="application/vnd.ms-excel" reset="Yes"> 

<cfquery name="GetData" datasource="#request.dsn#"> 
SELECT * 
FROM v_Occurrences 
</cfquery> 

<cfset strFileName = "OccurrenceData" & "#now().getTime()#" & "#UserID#"> 
<!--- 
<cfdump var="#GetData#"> 
---> 

<cfset filepath = "file:///...OccurenceData.xls"> 
<!--- Write the two sheets to a single file ---> 
<cfspreadsheet 
    action ="read" 
    columnnames = "Occurence_Date,Full_Name_Client" 
    columns = "2" 
     excludeHeaderRow = "false" 
    headerrow = "1" 
    query="GetData" 
    rows = "2" 
    src ="#filepath#"> 

<cfscript> 
    OccurrenceData = SpreadsheetNew("Data"); 
    Month = SpreadsheetNew("Month"); 
    Person = SpreadsheetNew("Person"); 
    SpreadsheetAddRows(occurrencedata,getdata); 
</cfscript> 

<!--- Write the two sheets to a single file ---> 
<cfspreadsheet 
    action="write" 
    filename="#filepath#" 
    name="OccurrenceData" 
    overwrite="true" 
     sheetname="Data" > 


<cfspreadsheet 
    action="Update" 
    filename="#filepath#" 
    name="Month" 
     sheetname="Month"> 

<cfspreadsheet 
    action="Update" 
    filename="#filepath#" 
     name="Person" 
     sheetname="Person" > 

<cfspreadsheet 
    action="read" 
    src="#filepath#" 
    sheetname="occurrencedata" 
    query="GetData"> 

です:変数Occurrence_Dataは、これはおそらく良いよりも害をやっている

<cfscript> 
    SpreadsheetAddRow(OccurrenceData,"Date,Name",1,1); 
    SpreadsheetAddRow(OccurrenceData, 
    "#Dateformat(Occurrence_Date,'mm/dd/yyyy')#,#Full_Name_Client#", 
    2,1,true); 
</cfscript> 

<cfspreadsheet 
    action="write" 
    autosize="true" 
    filename="#strFileName#.xls" 
    overwrite="true" 
    password="password" 
    query="GetData" 
     sheetname="Data" > 

答えて

0

問題番号1を定義されていません。

<cfcontent type="application/vnd.ms-excel" reset="Yes"> 

問題数は、単一のファイルには、2枚のシートを書きたい場合は2.、あなたはこれをしない:

OccurrenceData = SpreadsheetNew("Data"); 
// do stuff with this sheet 
SpreadsheetCreateSheet(OccurrenceData, "Month"); 
SpreadSheetSetActiveSheetNumber(OccurrenceData, 2); 
// do stuff with this sheet 

SpreadSheetWrite(OccurrenceData, whateverYourFileNameIs); 

OccurrenceData = SpreadsheetNew("Data"); 
Month = SpreadsheetNew("Month"); 

あなたはこのような何かを行います私はまたあなたが一度に一つのことをすることをお勧めします。少しのコードを書いて実行し、結果を見てください。次に、さらにコードを追加して実行し、結果を確認します。これにより、エラーの原因となるコードを特定するのに役立ちます。

+0

私は自分のコードを調整して下に簡略化してエラーを表示していませんが、Excelのシートは表示されません。 SpreadsheetAddRow行を調整してデータをループする必要があることを知ったので、以下の変更を確認することができます。 spObj = SpreadsheetNew( "Data"); SpreadsheetAddRows(spObj、#getdata#); SpreadsheetAddRow(spObj、 "Date、Name"、1,1); SpreadsheetCreateSheet(spObj、 "Month"); SpreadSheetSetActiveSheetNumber(spObj、2);

+0

spObj = SpreadsheetNew( "Data");for(i = 1; i <= GetData.recordcount; i ++){ SpreadsheetAddRow(spObj、 "#Dateformat(getdata.Occurrence_Date、 'mm/dd/yyyy')#、#GetData.Full_Name_Client#"、2 、1、true); } SpreadSheetWrite(spObj、 "#ファイルパス## strFileName#.XLS"、 "YES");

関連する問題