MS-ExcelファイルをCSV形式で保存するスクリプト

挨拶代わりに、以前id:NAT:20060620#p2で書いたスクリプトを置いておきます。
MS-ExcelファイルをCSV形式で保存するWSHスクリプト(JScript)です。

// saveAsCsv.js: MS-ExcelファイルをCSV形式で保存する

if(WScript.Arguments.length != 1) {
  WScript.Echo("Usage: cscript saveAsCsv.js <file_name>");
  WScript.Quit(1);
}

// カレントディレクトリ
var WshShell = WScript.CreateObject("WScript.Shell");
var currentDirectory = WshShell.CurrentDirectory;

// Excelファイルのパス
var xlsFileName = WScript.Arguments(0);
var xlsFilePath = currentDirectory + "\\" + xlsFileName;

// CSVファイルのパス(xlsFileNameの拡張子を".csv"に変換したファイル名を使う)
var csvFileName = xlsFileName.replace(/\.[^.]+$|$/, ".csv");
var csvFilePath = currentDirectory + "\\" + csvFileName;

// ExcelのApplicationオブジェクトを取得
var exelApplication = WScript.CreateObject("Excel.Application");
// メッセージダイアログ表示の抑制
exelApplication.DisplayAlerts = false;

try {
  exelApplication.WorkBooks.Open(xlsFilePath);
  var book1 = exelApplication.Workbooks(xlsFileName);
  var sheet1 = book1.Worksheets(1);

  // CSVで保存 (6 は 定数XlFileFormat.xlCSV の値)
  sheet1.SaveAs(csvFilePath, 6);

  WScript.Echo("Saved as: " + csvFileName);
} catch(e) {
  // エラー発生
  WScript.Echo("error: " + e.description);
} finally {
  // Excelを終了
  exelApplication.Quit();
}

やってることは大したことなくて、単に本物のMS-Excelを起動してファイルを読み込ませて、CSV形式で保存しているだけです。要は、MS-Excelのマクロで書けるようなことを、外からJScriptで実行してるだけ。
Windows 2000やXPに入っているcscriptコマンドを使い、コマンドプロンプトで以下を入力すれば起動できる。もちろん、MS-Excelがインストールされている環境でないと動きません。

cscript saveAsCsv.js Book1.xls

ファイル名を引数に指定するのではなく、直接プログラム中に書くのがちょっと情けないな・・・。そのうち手直しするかな。
ファイル名を引数に指定するように修正しました。