説明

Excel スプレッドシートオブジェクトにクエリーから複数の行を追加します。

戻り値

なし

カテゴリ

Microsoft Office の統合

関数のシンタックス

SpreadsheetAddrows(spreadsheetObj, data [, row, column, insert, datatype, includeColumnNames])

関連項目

SpreadsheetAddColumnSpreadsheetAddImageSpreadsheetAddRowSpreadsheetDeleteRowSpreadsheetDeleteRows

SpreadsheetFormatRowSpreadsheetFormatRowsSpreadsheetShiftRows

履歴

ColdFusion 11:datatype 属性が追加されました。

ColdFusion 9:この関数が追加されました。

パラメーター

パラメーター

説明

spreadsheetObj

列の追加先となる Excel スプレッドシートオブジェクトです。

data

行データまたは配列を含むクエリーオブジェクトです。

row

(オプション)行を挿入する行番号です。この値以上の番号を持つ既存の行の行番号は、追加される行の数だけインクリメントされます。このパラメーターの値を指定する場合は、column の値も指定する必要があります。このパラメーターを省略すると、行は、現在の最後の行に続いて挿入されます。

 

includeColumnNames

(オプション)スプレッドシートオブジェクトへの列ヘッダーの記述を有効/無効にするブール値です。デフォルトでは、値は false です。

column

(オプション)列データの追加先となる列の番号です。行内の開始列より左側にあるすべての列のセルは空になります。このパラメーターの値を指定する場合は、row の値も指定する必要があります。

insert

(オプション)このパラメーターはオプションです。デフォルト値は true です。行を挿入するかどうかを指定する boolean 値です。false の場合は、指定された行エントリのデータが置き換えられます。

datatype (オプション)datatype 式の配列。式の詳細については、SpreadsheetAddRow 関数の datatype パラメーターの説明を参照してください。

次の例では、新しい Excel スプレッドシートオブジェクトを作成し、AddRows 関数を使用してクエリーからデータを追加することによって、スプレッドシートを作成します。

<cfquery
name="courses" datasource="cfdocexamples"
cachedwithin="#CreateTimeSpan(0, 6, 0, 0)#">
SELECT CORNUMBER,DEPT_ID,COURSE_ID,CORNAME
FROM COURSELIST
</cfquery>

<cfscript>
///We need an absolute path, so get the current directory path.
theFile=GetDirectoryFromPath(GetCurrentTemplatePath()) & "courses.xls";
//Create a new Excel spreadsheet object and add the query data.
theSheet = SpreadsheetNew("CourseData");

SpreadsheetAddRows(theSheet,courses);
SpreadsheetAddRows(theSheet,["1,a", "2,B,b"]);
</cfscript>

<!--- Write the spreadsheet to a file, replacing any existing file. --->
<cfspreadsheet action="write" filename="#theFile#" name="theSheet"
sheet=1 sheetname="courses" overwrite=true>

datatype パラメーターの使用例を次に示します。

<cfscript>
 // create a query with data to write an excel file.
	q_data = QueryNew("n1, n2, n3, s4, s5, d6", "", 
						[
							{n1:"1.203E+4",          n2:"1.230E4", n3:"103E4", s4:"1.203E+4", s5:"1.230E4", d6:"4 jan 15"}, 
						 	{n1:"1.203E+4", n2:"1.230E4", n3:"103E4", s4:"01.203E+4", s5:"9.230E4", d6:"15 dec 15"} 
						]);
	cfdump(var="#q_data#", format="html", label="qry-data");

 /*//////////////////////// spreadSheetAddRows method : datatype parameter. /////////////////////////*/
 /*// method signature :	SpreadsheetAddrows(spreadsheetObj, data[, row, column, insert], datatype) //*/

qry_xl_fl = expandpath("./") & "adrws-dt-ty_qry.xlsx";
xl_obj = spreadsheetNew("test-addrws-dty", true);
datatype_arr = ["NUMERIC:1-3; STRING:4,5; DATE:6","STRING:1-3; NUMERIC:4,5; STRING:6"];
spreadSheetAddRows(xl_obj, q_data, 1, 1, true, datatype_arr );

spreadsheetwrite(xl_obj, qry_xl_fl, "", true, datatype_arr); //pass an empty str for password parameter.
	cfspreadsheet( action="read", src=qry_xl_fl, query="q_data_out");
	cfdump(var="#q_data_out#", format="html", label="data-read-from-adrws-xl");
</cfscript>

includeColumnNames パラメーターの使用例

<cfscript>
	out_fl = "#expandpath("./")#header.xlsx";
        xlobj = SpreadsheetNew("2d_arr_data", true); 
        qry_data = queryNew("product, customer, qtr");
        queryAddRow(qry_data, {product:"aniseed syrup", customer="annie", qtr="1"});
        queryAddRow(qry_data, {product:"camembert pierrot", customer="pierre", qtr="2"});
        queryAddRow(qry_data, {product:"scones", customer="connie", qtr="4"});
	datatype = [""];
        spreadsheetAddRows(xlobj, qry_data,1,1,"true",datatype,true);
        cfspreadsheet(action="write", filename="#out_fl#", name="xlobj", overwrite=true);
        cfspreadsheet(action="read", src="#out_fl#", query="qryxl");
        writeDump(qryxl);
</cfscript>

上記の例では、出力は header.xlsx で、このファイルは列ヘッダー、productcustomer および qtr を読み取ります。各列ヘッダーの下には、各列に対応する行の値があります。出力は次のように表示されます。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー