アットウィキロゴ

wsh_csvread

■CSVファイルの読み込み
 
CSVファイル(address.csv)
name,age,address
"田中",20,"大阪府"
"鈴木",24,"東京都"
"佐藤",22,"北海道"
 
// カレントディレクトリをスクリプトのあるディレクトリへ変更
var objShell = WScript.CreateObject("WScript.Shell");
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var fi = fso.GetFile(WScript.ScriptFullName);
objShell.CurrentDirectory = fi.ParentFolder.Path;
 
var csv_dir = ".\\csv";
var con = new ActiveXObject("ADODB.Connection");
 
try{
 
/////////////////////////////////////////////////////////////////////////////////
// CSVファイルの一行目にヘッダがある場合
/////////////////////////////////////////////////////////////////////////////////
WScript.Echo("\r\n=========== CSVヘッダあり ageを昇順にソート ===========\r\n");
 
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"
	+ "Data Source=" + csv_dir + ";"
	+ "Extended Properties=\"text;HDR=YES;FMT=Delimited;\";";
 
con.Open();
 
// CSVファイルから、SQLでクエリ
var rs = con.Execute("select * from address#csv order by age");
 
while (!rs.EOF) {
	var name = rs.Fields("name");
	var age = rs.Fields("age");
 
	WScript.Echo("-------------------------------------------------------------");
	WScript.Echo("name:\t"+name+"\r\nage:\t"+age);
 
	rs.MoveNext();
}
 
rs.Close();
con.Close();
 
/////////////////////////////////////////////////////////////////////////////////
// CSVファイルの一行目にヘッダが無い場合、接続文字列で、"HDR=NO" を指定する。
/////////////////////////////////////////////////////////////////////////////////
WScript.Echo("\r\n=========== CSVヘッダなし ===========\r\n");
 
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"
	+ "Data Source=" + csv_dir + ";"
	+ "Extended Properties=\"text;HDR=NO;FMT=Delimited;\";";
 
con.Open();
 
// CSVファイルから、SQLでクエリ
var rs = con.Execute("select * from address_noTitle#csv");
 
while (!rs.EOF) {
	var name = rs.Fields(0);
	var age = rs.Fields(1);
 
	WScript.Echo("-------------------------------------------------------------");
	WScript.Echo("name:\t"+name+"\r\nage:\t"+age);
 
	rs.MoveNext();
}
 
rs.Close();
con.Close();
 
}catch(e){
	WScript.Echo((e.number & 0xFFFF).toString() + "\t" + e.name + "\t" + e.description);
}
 
■出力結果
=========== CSVヘッダあり ageを昇順にソート ===========
 
-------------------------------------------------------------
name:   田中    age:    20
-------------------------------------------------------------
name:   佐藤    age:    22
-------------------------------------------------------------
name:   鈴木    age:    24
 
=========== CSVヘッダなし ===========
 
-------------------------------------------------------------
name:   田中    age:    20
-------------------------------------------------------------
name:   鈴木    age:    24
-------------------------------------------------------------
name:   佐藤    age:    22
 
最終更新:2009年07月14日 11:21