説明

Excel スプレッドシートオブジェクトに列または列データを追加します。

戻り値

なし

カテゴリ

Microsoft Office の統合

関数のシンタックス

SpreadsheetAddColumn(SpreadsheetObj, data[, startRow, startColumn, insert], datatype);

関連項目

SpreadsheetAddImageSpreadsheetAddRowSpreadsheetAddRowsSpreadsheetDeleteColumn

SpreadsheetDeleteColumnsSpreadsheetFormatColumnSpreadsheetFormatColumnsSpreadsheetShiftColumns

履歴

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

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

パラメーター

パラメーター

説明

spreadsheetObj

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

data

セルエントリのカンマ区切りのリスト。列に追加される行ごとに 1 つあります。

startRow

このパラメーターはオプションです。列データの追加を開始する行の番号です。insert="true" の場合、開始行より上にある列内のすべての行のセルが、空になります。このパラメーターを省略すると、列は、最初の行の始めから現在の列の間に挿入されます。列を指定することはできません。

startColumn

このパラメーターはオプションです。列データの追加先となる列の番号です。

insert

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

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

使用方法

spreadsheetaddcolumn 関数は、2 つまたは 5 つの引数を受け取ります。次の 2 つのパラメーターを使用して、spreadsheetaddcolumn 関数を指定できます。

<cfset spreadsheetAddColumn(SpreadsheetObj,"newcol1,newcol2,newcol3")>

次に示すように、5 つのパラメーターを使用して、spreadsheetaddcolumn 関数を指定できます。

<cfset spreadsheetAddColumn(SpreadsheetObj,"newcol1,newcol2,newcol3",2,3,false)>

次の例では、クエリーから Excel スプレッドシートオブジェクトを作成し、行 3 から開始されるデータを含む新しい列 2 を挿入します。既存の列 2 およびそれ以降は 1 つずつインクリメントされます。

<!--- Get the spreadsheet data as a query. --->
<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 Spreadsheet object and add the query data.
theSheet = SpreadsheetNew("CourseData");
SpreadsheetAddRows(theSheet,courses);
//Insert a new second column to the sheet, with data starting in row 3.
SpreadsheetAddColumn(theSheet,
"Basic,Intermediate,Advanced,Basic,Intermediate,Advanced,Basic,Intermediate,
Advanced"
,3,2,true);
</cfscript>

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

例 2 | 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");

datatype_arr = ["NUMERIC:1-3; STRING:4,5; DATE:6","STRING:1-3; NUMERIC:4,5; STRING:6"];

/*///////////////////////////// spreadsheetAddColumn method : datatype parameter. //////////////////////////////*/
/*// method signature : SpreadsheetAddColumn(SpreadsheetObj, data[, startRow, startColumn, insert], datatype) //*/

qry_xl_fl = expandpath("./") & "adcol-dt-ty_qry.xlsx";
xl_obj = spreadsheetNew("test-adcol-dty", true);

q_cl_lst = listsort(q_data.columnlist, "TextNoCase", "DESC");
for( r=1; r LTE q_data.recordcount; r++)
 {
	rw_data_lst = "";
	for(c=1; c LTE listLen(q_cl_lst); c++)
	rw_data_lst = rw_data_lst & q_data[listGetAt(q_cl_lst, c)][r] & ",";
	spreadSheetAddColumn(xl_obj, rw_data_lst, 1, r, true, "NUMERIC:1-3; STRING:4,5; DATE:" );
  }

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-adcol-xl");

</cfscript>

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

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