■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