2015年9月27日日曜日

プログラミングによるExcel操作

Excelの操作というよくあるタスク対してプログラミング的にどのようなアプローチが考えられるだろうか。
個人的に単純に好きな言語ならscalaだがもっと適したのがなんかあるだろうと色々調べてみた。
 ざっと並べるとこんなところか。 

1)VBA
2)WSH
3)PowerShell
4)各プログラミング言語のライブラリを使う。 


やはり一番メジャーなのはVBAだろう。
VBAにはすでに日々お世話になっているが、もっとオブジェクト指向的な機能が欲しい。 

VBA以外だとWSHのJScriptとかがよさげだ。
馴染みやすそうなJSの言語仕様だったので試しに使ってみたが、 他のファイルとの連携とかがやりにくそうだったので微妙に感じた。
簡単にJavaのimportみたいなことができればよかったんだが。。。
ちょっとした処理なら拡張VBAみたいなイメージで十分に使えるだろう。
だがMS的にはサポートを縮小しているようなのが気になる所だ。 

PowerShellはJScriptと違って言語仕様を学ぶのが面倒臭そうだったのでスルー。 

上記のような公式的なアプローチ以外にもメジャーなプログラミング言語だと たいていExcel操作のためのライブラリが存在している。
こういうタスクはスクリプトさくっとやりたいところだ。
でもLL系はまともに触ったことないんだよなあ。。。

面倒だがコンパイル言語で書くか。。。
ExcelだしC#で書くか。。。
そうえばJavaにPOIがあったな。
でもJavaで書くならラッパーライブラリ使ってScalaで操作しよう。

あれ結局Scalaに戻る。。。

2015年9月23日水曜日

Scalaでプロパティファイルを読み込む

設定ファイルとしてプロパティファイルを用いることがある。
サードパーティのライブラリなしでscalaでプロパティファイルを扱うときのコードサンプル
ようはJavaと同様


object ReadProperties{
def main(args: Array[String]):Unit = {
  readPropertyFile()
}
//プロパティファイルを読み込んで表示
def readPropertyFile():Unit = {
val p = new java.util.Properties()
p.load(new java.io.FileInputStream("conf.properties"))
val result = p.getProperty("hoge")
println(result)
}
}
view raw ReadProperties hosted with ❤ by GitHub

以上。