[WSH] JScriptでCSVファイルにSQLを発行してみる

JavaScript

仕事でWSHを使ってCSVのデータを抽出することがあったので備忘録。

// ActiveXObjectに任せればなんでも出来ると思っている
var cn = new ActiveXObject("ADODB.Connection");

// Propertiesの HDR=YESはCSVにヘッダーがあるってこと
// FMT=Delimited はCSVファイルだよってこと
var driver = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.;Extended Properties=¥"text;HDR=YES;FMT=Delimited¥";";

// ADODBオブジェクトに接続文字列を渡してあげる
cn.ConnectionString = driver;
cn.Open();

// SQLを発行する
var rs = cn.Execute(sql);

// 抽出したデータの表示
WScript.Echo(rs.Fields("CSVの列名(ヘッダー)").Value);

こんな感じでCSVにクエリを投げられます。
ソートや条件が複雑なときなど、Excelを使うより簡単に出来るかもしれません。

ちなみにSQLの列名はCSVのヘッダー名でいけます。

SELECT
  氏名, 電話番号, 住所
FROM
  CSVのファイル名
WHERE
  性別='女'

この様に日本語でもいけます。

そして、クオーテーションで囲まなくてもいけます!!!!!

ちなみに、ヘッダーなし(HDR=NO)の場合は列名はF1,F2,F3….となるようです。

コメント

タイトルとURLをコピーしました