SCALAの記事一覧

目次

対象読者

ビルドパスの設定ぐらいは簡単にできる方

SCALAをつかってExcelを扱う

SCALAを実際につかってみて、どれだけ楽に記述できるようになったのか検証してみたいとおもいます。

Java Excel API

Download

http://sourceforge.net/projects/jexcelapi/files/

インストールというかjarファイルのコピー

ダウンロードしてきたzip解凍 SCALAのをインストールディレクトリにlibディレクトリがあるとおもいますが

scala起動用の下バッチファイルをパスの通った場所に設置

たとえば、scala.exeのある場所に起動用バッチを作成。ファイル名はscalaa.batとする。

今後jarファイルを取り込む数が増える可能性大でありながら、 Excelという業務で最も使われているであろうファイルにアクセスするjarファイルがデフォルトで入っていないのはけしからん、

とはいえ、毎回クラスパスを通すのは面倒である。というわけでバッチファイルから指定ディレクトリにあるjarファイルは有無をいわさずクラスパスに追加する

scalaa.batの例

チュートリアル

ダウンロードしてきたファイルを解凍するとtutorial.htmlがあるので、 それをみるといいとおもわれる。

Java Excel API 日本語での紹介サイト

Java Excel API(読み込み機能)

Java Excel API(書き込み機能(1))

Java Excel API(書き込み機能(2))

Sheetの名前を出力してみる

Javaをつかった場合とScalaをつかった場合を比較してみよう

Javaをつかった場合

import java.io.File;
import java.io.IOException;

import jxl.Workbook;
import jxl.read.biff.BiffException;

public class Main {
	public static void main(String[] args) throws BiffException, IOException {
		File excelFile = new File(args[0]);
		Workbook workbook = Workbook.getWorkbook(excelFile);
		System.out.println(workbook.getSheet(0).getName());
		workbook.close();
	}
}

SCALAの特徴を使った場合

[編集]

Java用につくられたExcelのWorkbookクラスを、そのままでも使えますが、 SCALAの特徴を生かしたobjectをつくります、ファイル名をWorkbookScala?.scala とでもしましょうか。

[編集]

確認の仕方

一般的には下記のとおりです。

コマンドラインでコンパイルする場合

scalac --classpath jarファイルのパス コンパイルしたい.scala

実行は

scala --classpath jarファイルのパス 実行したい.scala

引数

Excel版 Scale版 どちらも引数にEXCELのファイルを必要とする。
たとえば c:\xxx\yyy.xslならば"c:\\xxx\\yyy.xsl"
を渡す

しかしながら、このサイトでは、バッチファイルでコンパイルを処理いたしますので、次のようになります。

しかしながら、このままだとインポートする際にファイルを用意しておかなくてはならないという手間がかかってしまいます。

そこで、Jarファイル化して共通のライブラリに格納しておき、自動的にJarファイルをクラスパスに格納する方法が必要となります。

インポートするJarファイルが増えてしまうと、scalaをお手軽なスクリプト言語としてつかう際に煩雑になってしまいます。

Jarファイル名をシンプルにとどめておきたいです。となるとパッケージ名を統一してまとめておきたいですし、インポート宣言は一つにしたいところです。

また、スクリプト中からはクラスのインスタンス作成の記述が抜けていても、記述ができるように、メソッドを用意するとよいでしょう。

コンパイル

scalacc コンパイル対象.scala

実行方法

scalaa 実行したい.scala

[編集]

沸き上がる疑問

たとえば、jarファイルで提供されているWorkbookクラスがあったとしよう。 利用開始時には、まあ、インポートの仕方のサンプルぐらいはわかるとはおもう。

でも、そこから先、クラス名は何が使えるようになったのか、クラスのメソッドは何があるのか 知る術がないと、開発力は落ちる。

だから、その一覧を取得する方法を得る必要がある。

コマンドプロンプトから

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-12-12 (土) 00:04:40 (5241d)