説明
Excel スプレッドシートファイルを管理します。
- シートファイルからシートを読み取り、ColdFusion スプレッドシートオブジェクト、クエリー、CSV 文字列、または HTML 文字列に保管します。
- クエリー、ColdFusion スプレッドシートオブジェクト、または CSV 文字列変数から単一のシートを新規 XLS ファイルに書き込みます。
- 既存の XLS ファイルにシートを追加します。
カテゴリ
シンタックス
タグのシンタックスは action 属性の値によって異なります。
Read <cfspreadsheet action="read" src = "filepath" columns = "range" columnnames = "comma-delimited list" excludeHeaderRow = "true | false" format = "CSV|HTML" headerrow = "row number" name = "text" query = "query name" rows = "range" sheet = "number" sheetname = "text"> Update <cfspreadsheet action="update" filename = "filepath" format = "csv" name = "text" password = "password" query = "query name" sheetname = "text" > Write <cfspreadsheet action="write" filename = "filepath" format = "csv" name = "text" overwrite = "true | false" password = "password" query = "queryname" sheetname = "text" autosize = "true | false" >
関連項目
スプレッドシート関数
履歴
ColdFusion 11:autosize 属性が追加されました。
ColdFusion 9.0.1:{{excludeHeaderRow}} 属性が追加されました。
ColdFusion 9: このタグが追加されました。
属性
属性 |
アクション |
必須/オプション |
デフォルト |
説明 |
---|---|---|---|---|
action |
All |
必須 |
|
次のいずれかです。
|
filename |
{{update, write}}r |
必須 |
|
書き込まれるファイルのパス名です。 |
excludeHeaderRow |
read |
オプション |
false |
true に設定すると、クエリー結果にヘッダ行が含まれなくなります。 |
name |
All |
name または query が必須です。 |
|
|
query |
All |
name または query が必須です。 |
|
|
src |
read |
必須 |
|
読み取るファイルのパス名です。 |
columns |
read |
オプション |
|
列番号または列の範囲です。単一の番号、ハイフン区切りの列範囲、カンマ区切りリスト、またはこれらの任意の組み合わせ (1,3-6,9 など) を指定します。 |
columnnames |
read |
オプション |
|
カンマ区切りの列名です。 |
format |
All |
オプション |
read: スプレッドシートオブジェクトとして保存します。 |
name 変数で表されるデータの形式です。
|
headerrow |
read |
オプション |
|
列名を含む行番号です。 |
overwrite |
write |
オプション |
false |
既存のファイルを上書きするかどうかを指定する boolean 値です。 |
password |
updatewrite |
オプション |
|
シートを変更するためのパスワードを設定します。 |
rows |
read |
オプション |
|
読み取る行の範囲です。単一の番号、ハイフン区切りの行範囲、カンマ区切りリスト、またはこれらの任意の組み合わせ (1,3-6,9 など) を指定します。 |
sheet |
read |
オプション |
|
シートの番号です。read アクションの場合、sheet または sheetname を指定できます。 |
sheetname |
All |
オプション |
|
シートの名前:read アクションの場合、sheet または sheetname を指定できます。write および update アクションの場合は、sheetname で指定した値に従って、指定されたシートの名前が変更されます。 |
autosize | write | オプション | true | デフォルトでは、この属性の値は、true です。シートの列は、コンテンツに適合するようにリサイズされます。列のリサイズを避けるには、false に設定します。 |
使用方法
各 ColdFusion スプレッドシートオブジェクトは、Excel シートを表しています。
- 複数のシートを持つ Excel ファイルを読み取るには、read オプションで複数の cfspreadsheet タグを使用し、シートごとに異なる name および sheet または sheetname 属性を指定します。
- 単一ファイルに複数のシートを書き込むには、write アクションを使用してファイルを作成し、最初のシートを保存します。update アクションを使用して、各追加シートを追加します。
- 既存のファイルを更新するには、ファイルのすべてのシートを読み取り、複数のシートを変更して、その内容を使用します。write アクションおよび Update アクション(複数のシートファイルの場合)を使用して、ファイル全体を再度書き込みます。
cfspreadsheet タグは、XLS 形式のファイルのみを書き込みます。CSV ファイルを書き込むには、データを CSV 形式の文字列変数に配置し、cffile タグを使用して、ファイルにこの変数の内容を書き込みます。SpreadsheetNew や SpreadsheetAddColumn などの ColdFusion Spreadsheet* 関数を使用して、新しい ColdFusion スプレッドシートオブジェクトを作成し、スプレッドシートの内容を変更します。
例
次の例では、cfspreadsheet タグを使用して、様々な形式を使用した Excel スプレッドシートの読み取りおよび書き込みを行います。また、ColdFusion スプレッドシート関数を使用してシートを変更する簡単な方法も示します。
<!--- Read data from two datasource tables. ---> <cfquery name="courses" datasource="cfdocexamples" cachedwithin="#CreateTimeSpan(0, 6, 0, 0)#"> SELECT CORNUMBER,DEPT_ID,COURSE_ID,CORNAME FROM COURSELIST </cfquery> <cfquery name="centers" datasource="cfdocexamples" cachedwithin="#CreateTimeSpan(0, 6, 0, 0)#"> SELECT * FROM CENTERS </cfquery> <cfscript> //Use an absolute path for the files. ---> theDir=GetDirectoryFromPath(GetCurrentTemplatePath()); theFile=theDir & "courses.xls"; //Create two empty ColdFusion spreadsheet objects. ---> theSheet = SpreadsheetNew("CourseData"); theSecondSheet = SpreadsheetNew("CentersData"); //Populate each object with a query. ---> SpreadsheetAddRows(theSheet,courses); SpreadsheetAddRows(theSecondSheet,centers); </cfscript> <!--- Write the two sheets to a single file ---> <cfspreadsheet action="write" filename="#theFile#" name="theSheet" sheetname="courses" overwrite=true> <cfspreadsheet action="update" filename="#theFile#" name="theSecondSheet" sheetname="centers"> <!--- Read all or part of the file into a spreadsheet object, CSV string, HTML string, and query. ---> <cfspreadsheet action="read" src="#theFile#" sheetname="courses" name="spreadsheetData"> <cfspreadsheet action="read" src="#theFile#" sheet=1 rows="3,4" format="csv" name="csvData"> <cfspreadsheet action="read" src="#theFile#" format="html" rows="5-10" name="htmlData"> <cfspreadsheet action="read" src="#theFile#" sheetname="centers" query="queryData"> <h3>First sheet row 3 read as a CSV variable</h3> <cfdump var="#csvData#"> <h3>Second sheet rows 5-10 read as an HTML variable</h3> <cfdump var="#htmlData#"> <h3>Second sheet read as a query variable</h3> <cfdump var="#queryData#"> <!--- Modify the courses sheet. ---> <cfscript> SpreadsheetAddRow(spreadsheetData,"03,ENGL,230,Poetry 1",8,1); SpreadsheetAddColumn(spreadsheetData, "Basic,Intermediate,Advanced,Basic,Intermediate,Advanced,Basic,Intermediate,Advanced", 3,2,true); </cfscript> <!--- Write the updated Courses sheet to a new XLS file ---> <cfspreadsheet action="write" filename="#theDir#updatedFile.xls" name="spreadsheetData" sheetname="courses" overwrite=true> <!--- Write an XLS file containing the data in the CSV variable. ---> <cfspreadsheet action="write" filename="#theDir#dataFromCSV.xls" name="CSVData" format="csv" sheetname="courses" overwrite=true>