ScalaWithExcel
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[SCALAの記事一覧]]
*目次 [#f6f871c7]
#contents
*対象読者 [#v1b80415]
ビルドパスの設定ぐらいは簡単にできる方
*SCALAをつかってExcelを扱う [#q379a6fe]
SCALAを実際につかってみて、どれだけ楽に記述できるように...
*Java Excel API [#me7def6d]
-http://jexcelapi.sourceforge.net/
**Download [#z1c51a49]
http://sourceforge.net/projects/jexcelapi/files/
**インストールというかjarファイルのコピー [#b79cf4a7]
ダウンロードしてきたzip解凍
SCALAのをインストールディレクトリにlibディレクトリがある...
-そこに放り込むか
-userフォルダを作成します。
**scala起動用の下バッチファイルをパスの通った場所に設置 [...
たとえば、scala.exeのある場所に起動用バッチを作成。ファイ...
今後jarファイルを取り込む数が増える可能性大でありながら、
Excelという業務で最も使われているであろうファイルにアクセ...
とはいえ、毎回クラスパスを通すのは面倒である。というわけ...
***scalaa.batの例 [#v338e19a]
--説明
BASEが2回出てきているが、どちらも自動的にJarファイルを読...
下記の例のように追加したいフォルダの数だけ繰り返し記述す...
@echo off
setlocal ENABLEDELAYEDEXPANSION
set CP=.
set BASE=C:\scala\lib
for %%f in (%BASE%\*) do set CP=!CP!;%%f
set BASE=C:\scala\lib\user
for %%f in (%BASE%\*) do set CP=!CP!;%%f
SET SCALA_DOC_HOME="C:\scala\doc"
ECHO %CP%
scala -classpath %CP% %1
**チュートリアル [#ya413957]
ダウンロードしてきたファイルを解凍するとtutorial.htmlがあ...
それをみるといいとおもわれる。
**Java Excel API 日本語での紹介サイト [#uf4640ed]
***Java Excel API(読み込み機能) [#a3b50f93]
---http://www.emxas.co.jp/itblog/category_35/item_133.html
***Java Excel API(書き込み機能(1)) [#n2fdd81f]
---http://www.emxas.co.jp/itblog/category_35/item_151.html
***Java Excel API(書き込み機能(2)) [#y4349ece]
---http://www.emxas.co.jp/itblog/category_35/item_172.html
*Sheetの名前を出力してみる [#afc1ab76]
Javaをつかった場合とScalaをつかった場合を比較してみよう
**Javaをつかった場合 [#e40eec5f]
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 BiffExcept...
File excelFile = new File(args[0]);
Workbook workbook = Workbook.getWorkbook(excelFile);
System.out.println(workbook.getSheet(0).getName());
workbook.close();
}
}
**SCALAの特徴を使った場合 [#g6e7bb6a]
#areaedit
Java用につくられたExcelのWorkbookクラスを、そのままでも使...
SCALAの特徴を生かしたobjectをつくります、ファイル名をWork...
とでもしましょうか。
-WorkbookScala.scala
import java.io.File
import java.io.IOException
import jxl.Workbook
import jxl.read.biff.BiffException
import scala.util.DynamicVariable
object WorkbookScala{
val dynamicvariable= new DynamicVariable[Workbook](null)
//自動的にcloseするopen
def open (path:String)(block : => Unit){
var excelFile = new File(path)
var workbook = Workbook.getWorkbook(excelFile)
try {
dynamicvariable.withValue(workbook){block}
} finally {
workbook.close();
}
}
//自動的に設定されるブロック変数のようなもの
def $_()={
dynamicvariable.value
}
}
#areaedit(end)
-Sample.scala
#areaedit
SCALAは動的変数を使うことでブロック部分以外をカプセル化で...
--特徴
---自動的にファイルクローズする(Javaで困難な箇所)
---ブロック変数は宣言せずに$_で使えるようになっている
---複雑なインポートの宣言をimport WorkbookScala._だけで済...
import WorkbookScala._
object Sample{
def main(args: Array[String]): Unit = {
open(args(0)){
println($_.getSheet(0).getName())
}
}
}
#areaedit(end)
#areaedit
**確認の仕方 [#d862710d]
一般的には下記のとおりです。
***コマンドラインでコンパイルする場合 [#neab0acc]
scalac --classpath jarファイルのパス コンパイルしたい.scala
***実行は [#d3e9b77a]
scala --classpath jarファイルのパス 実行したい.scala
***引数 [#y99fc9ff]
Excel版 Scale版 どちらも引数にEXCELのファイルを必要とす...
たとえば c:\xxx\yyy.xslならば"c:\\xxx\\yyy.xsl"
を渡す
しかしながら、このサイトでは、バッチファイルでコンパイル...
しかしながら、このままだとインポートする際にファイルを用...
そこで、Jarファイル化して共通のライブラリに格納しておき、...
インポートするJarファイルが増えてしまうと、scalaをお手軽...
Jarファイル名をシンプルにとどめておきたいです。となるとパ...
また、スクリプト中からはクラスのインスタンス作成の記述が...
***コンパイル [#u893b61b]
scalacc コンパイル対象.scala
***実行方法 [#x4e4765a]
scalaa 実行したい.scala
#areaedit(end)
#areaedit
*沸き上がる疑問 [#i1739e66]
たとえば、jarファイルで提供されているWorkbookクラスがあっ...
利用開始時には、まあ、インポートの仕方のサンプルぐらいは...
でも、そこから先、クラス名は何が使えるようになったのか、...
知る術がないと、開発力は落ちる。
だから、その一覧を取得する方法を得る必要がある。
コマンドプロンプトから
#areaedit(end)
終了行:
[[SCALAの記事一覧]]
*目次 [#f6f871c7]
#contents
*対象読者 [#v1b80415]
ビルドパスの設定ぐらいは簡単にできる方
*SCALAをつかってExcelを扱う [#q379a6fe]
SCALAを実際につかってみて、どれだけ楽に記述できるように...
*Java Excel API [#me7def6d]
-http://jexcelapi.sourceforge.net/
**Download [#z1c51a49]
http://sourceforge.net/projects/jexcelapi/files/
**インストールというかjarファイルのコピー [#b79cf4a7]
ダウンロードしてきたzip解凍
SCALAのをインストールディレクトリにlibディレクトリがある...
-そこに放り込むか
-userフォルダを作成します。
**scala起動用の下バッチファイルをパスの通った場所に設置 [...
たとえば、scala.exeのある場所に起動用バッチを作成。ファイ...
今後jarファイルを取り込む数が増える可能性大でありながら、
Excelという業務で最も使われているであろうファイルにアクセ...
とはいえ、毎回クラスパスを通すのは面倒である。というわけ...
***scalaa.batの例 [#v338e19a]
--説明
BASEが2回出てきているが、どちらも自動的にJarファイルを読...
下記の例のように追加したいフォルダの数だけ繰り返し記述す...
@echo off
setlocal ENABLEDELAYEDEXPANSION
set CP=.
set BASE=C:\scala\lib
for %%f in (%BASE%\*) do set CP=!CP!;%%f
set BASE=C:\scala\lib\user
for %%f in (%BASE%\*) do set CP=!CP!;%%f
SET SCALA_DOC_HOME="C:\scala\doc"
ECHO %CP%
scala -classpath %CP% %1
**チュートリアル [#ya413957]
ダウンロードしてきたファイルを解凍するとtutorial.htmlがあ...
それをみるといいとおもわれる。
**Java Excel API 日本語での紹介サイト [#uf4640ed]
***Java Excel API(読み込み機能) [#a3b50f93]
---http://www.emxas.co.jp/itblog/category_35/item_133.html
***Java Excel API(書き込み機能(1)) [#n2fdd81f]
---http://www.emxas.co.jp/itblog/category_35/item_151.html
***Java Excel API(書き込み機能(2)) [#y4349ece]
---http://www.emxas.co.jp/itblog/category_35/item_172.html
*Sheetの名前を出力してみる [#afc1ab76]
Javaをつかった場合とScalaをつかった場合を比較してみよう
**Javaをつかった場合 [#e40eec5f]
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 BiffExcept...
File excelFile = new File(args[0]);
Workbook workbook = Workbook.getWorkbook(excelFile);
System.out.println(workbook.getSheet(0).getName());
workbook.close();
}
}
**SCALAの特徴を使った場合 [#g6e7bb6a]
#areaedit
Java用につくられたExcelのWorkbookクラスを、そのままでも使...
SCALAの特徴を生かしたobjectをつくります、ファイル名をWork...
とでもしましょうか。
-WorkbookScala.scala
import java.io.File
import java.io.IOException
import jxl.Workbook
import jxl.read.biff.BiffException
import scala.util.DynamicVariable
object WorkbookScala{
val dynamicvariable= new DynamicVariable[Workbook](null)
//自動的にcloseするopen
def open (path:String)(block : => Unit){
var excelFile = new File(path)
var workbook = Workbook.getWorkbook(excelFile)
try {
dynamicvariable.withValue(workbook){block}
} finally {
workbook.close();
}
}
//自動的に設定されるブロック変数のようなもの
def $_()={
dynamicvariable.value
}
}
#areaedit(end)
-Sample.scala
#areaedit
SCALAは動的変数を使うことでブロック部分以外をカプセル化で...
--特徴
---自動的にファイルクローズする(Javaで困難な箇所)
---ブロック変数は宣言せずに$_で使えるようになっている
---複雑なインポートの宣言をimport WorkbookScala._だけで済...
import WorkbookScala._
object Sample{
def main(args: Array[String]): Unit = {
open(args(0)){
println($_.getSheet(0).getName())
}
}
}
#areaedit(end)
#areaedit
**確認の仕方 [#d862710d]
一般的には下記のとおりです。
***コマンドラインでコンパイルする場合 [#neab0acc]
scalac --classpath jarファイルのパス コンパイルしたい.scala
***実行は [#d3e9b77a]
scala --classpath jarファイルのパス 実行したい.scala
***引数 [#y99fc9ff]
Excel版 Scale版 どちらも引数にEXCELのファイルを必要とす...
たとえば c:\xxx\yyy.xslならば"c:\\xxx\\yyy.xsl"
を渡す
しかしながら、このサイトでは、バッチファイルでコンパイル...
しかしながら、このままだとインポートする際にファイルを用...
そこで、Jarファイル化して共通のライブラリに格納しておき、...
インポートするJarファイルが増えてしまうと、scalaをお手軽...
Jarファイル名をシンプルにとどめておきたいです。となるとパ...
また、スクリプト中からはクラスのインスタンス作成の記述が...
***コンパイル [#u893b61b]
scalacc コンパイル対象.scala
***実行方法 [#x4e4765a]
scalaa 実行したい.scala
#areaedit(end)
#areaedit
*沸き上がる疑問 [#i1739e66]
たとえば、jarファイルで提供されているWorkbookクラスがあっ...
利用開始時には、まあ、インポートの仕方のサンプルぐらいは...
でも、そこから先、クラス名は何が使えるようになったのか、...
知る術がないと、開発力は落ちる。
だから、その一覧を取得する方法を得る必要がある。
コマンドプロンプトから
#areaedit(end)
ページ名: