SQLの窓 イラストAC フリー素材

2019年08月15日

WSH(JScript) + Excel : 名前の定義がされた範囲をテーブルとして SELECT 文で 標準出力に CSV 出力

▼ CSV を作成するには以下のようにコマンドプロンプトで実行します。
cscript //nologo read-excel12-ado.wsf > table.csv 
★ テスト実行は、エクスプローラより実行します。 ★ .xls でも動作します read-excel12-ado.wsf
<JOB>
<SCRIPT language="JScript">

str = WScript.FullName;
str = str.substr( str.length - 11, 11 );
str = str.toUpperCase();
if ( str != "CSCRIPT.EXE" ) {
	str = WScript.ScriptFullName;
	WshShell =  new ActiveXObject("WScript.Shell");
	WshShell.Run( "cmd.exe /c cscript.exe //Nologo \"" + str + "\" & pause", 3 );
	WScript.Quit();
}

// ****************************
// オブジェクト作成
// ****************************
var cn = new ActiveXObject( "ADODB.Connection" )
var rs = new ActiveXObject( "ADODB.Recordset" )

var file_path = "C:\\Users\\sworc\\Documents\\hanbaic-set\\hanbaic.xlsx";
var target_name = "社員マスタ";

// ****************************
// 接続用の文字列を準備
// ****************************
var connection_string = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_path + ";" + "Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\"";

// ****************************
// 接続
// ****************************
cn.Open( connection_string );

// ****************************
// レコードセット取得
// ****************************
query = "select * from " + target_name;
rs.Open( query, cn );

// ****************************
// タイトル出力
// ****************************
var line_buffer = "";
for( i = 0; i < rs.Fields.Count; i++ ) {
	if ( line_buffer != "" ) {
		line_buffer += ",";
	}
	line_buffer += rs.Fields(i).Name;
}
WScript.echo( line_buffer );

// ****************************
// データ出力
// ****************************
while( !rs.EOF ) {
	line_buffer = "";
	if ( line_buffer != "" ) {
		line_buffer += ",";
	}
	for( i = 0; i < rs.Fields.Count; i++ ) {
		if ( line_buffer != "" ) {
			line_buffer += ",";
		}
		line_buffer += rs.Fields(i).Value;
	}
	WScript.echo( line_buffer );

	rs.MoveNext();
}

// ****************************
// レコードセットクローズ
// ****************************
rs.Close();

// ****************************
// 接続解除
// ****************************
cn.Close();

</SCRIPT>
</JOB>




posted by at 2019-08-15 16:27 | WSH( JScript ) | このブログの読者になる | 更新情報をチェックする