高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

Excel.ApplicationをPerlから使う

会社でいつも通り、PerlからOLEオブジェクトのExcel.Applicationを使おうとしたときのこと。
PerlからExcelをいじるときは、たいてい急いでいるもので、わたしはいままで文字コードを気にしないでスクリプトを書いていました。なので、文字コードはエディタのデフォルトのShift-JIS。当然文字化けの危険性がありますが、いままで偶然その問題には遭遇せずにやって来ていました。
しかし、結局文字化けに遭遇するわけで。スクリプトの文字コードの変更を余儀なくされます。

そこで問題になるのがExcelオブジェクト。ExcelはShift-JISにしか対応していないので、Shift-JIS以外の文字コードで書いたスクリプトから日本語を含むパスのファイルを開こうとすると、文字化けが起こりファイルを開けません。ほかにもExcelのセルから取得した文字列とほかの文字列の比較など、Excelから直接出力したデータを扱う場合、文字コードの違いから処理が行えなくなってしまいます。
一応そのたび文字コードを変換してやれば何とかなりますが、ちょっとしたことを書くのにそれはあまりにもめんどくさい。ExcelをいじるPerlスクリプトはShift-JISで書くとしたほうがいいのかもしれません。もちろん文字化けの恐怖は残りますが。
まあ、そんなに心配ならJScriptでも使えという気はしますけどね。こちらも正規表現使えるし。