Java/ExcelとJavaBeansをマッピングするライブラリXLSBeansを使う
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
**XLSBeansというライブラリとは [#y497f32e]
開発をしてると設計書がExcelで記述されていたりします。んで...
**ダウンロード・インストール [#yb307b5a]
https://sourceforge.jp/projects/amateras/files/
よりダウンロードします。ダウンロード後、
javassist.jar
jxl.jar
ognl-2.6.9.jar
xlsbeans_1.0.2.jar
commons-lang-2.3.jar
らにクラスパスに通しておきました。
**やってみる [#h4b57b4c]
下記のような株価情報が書いてあるExcelファイルをJavaBeans...
#ref(excel.png)
銘柄ごとの株価情報(Excelの行)をひとつのJavaBeansとします...
public interface IStock {
String getMarket(); <-市場
String getStockCode(); <-銘柄コード
String getName(); <-銘柄名
String getPrice(); <-現値
String getVolume(); <-出来高
}
***ExcelシートとJavaBeansの指定 [#wfdf9d02]
また、Excelの行のIStockのリストとして返すStocksクラスも定...
import java.util.List;
import net.java.amateras.xlsbeans.annotation.HorizontalR...
import net.java.amateras.xlsbeans.annotation.Sheet;
@Sheet(name = "株価情報")
public class Stocks {
private List<IStock> stocks;
public List<IStock> getStocks() {return stocks;}
@HorizontalRecords(tableLabel = "現在値一覧", recordCl...
public void setStocks(List<IStock> stocks) {
this.stocks = stocks;
}
}
上のStocksクラスでは、Excelファイルのシート名の指定(株価...
:@Sheet(name = "株価情報")|このファイルの株価情報シートを...
:@HorizontalRecords(tableLabel = "現在値一覧", recordClas...
ということを意味しています。
***JavaBeansのプロパティとExcelの列のマッピング [#ne3c25e4]
また、JavaBeansとExcelファイルもXLSBeansライブラリのアノ...
import net.java.amateras.xlsbeans.annotation.Column;
import org.apache.commons.lang.builder.ToStringBuilder;
public class Stock implements IStock {
private String name;
private String market;
private String price;
private String stockCode;
private String volume;
//このプロパティはシート上の「市場」とマッピング
//セルの結合をサポートする
@Column(columnName = "市場", merged = true)
public void setMarket(String market) {this.market = ma...
//このプロパティはシート上の「銘柄」とマッピング
@Column(columnName = "銘柄")
public void setName(String name) {this.name = name;}
//このプロパティはシート上の「現在値」とマッピング
@Column(columnName = "現在値")
public void setPrice(String price) {this.price = price;}
//このプロパティはシート上の「コード」とマッピング
@Column(columnName = "コード")
public void setStockCode(String stockCode) {this.stock...
//このプロパティはシート上の「出来高」とマッピング
@Column(columnName = "出来高")
public void setVolume(String volume) {this.volume = vo...
// getterは省略してます...
}
以上でクラス構成は以下のようになりました。
#ref(classdiagram.png)
**Mainクラス [#w008ef05]
最後にMainクラスです。実際にデータを読み込んでみます。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.List;
import net.java.amateras.xlsbeans.XLSBeans;
import net.java.amateras.xlsbeans.XLSBeansException;
public class Main {
public static void main(String[] args) throws FileNotF...
XLSBeansException {
InputStream in = new FileInputStream("株価ファイル.x...
// streamからStocksクラスを作成
// ここでアノテーションからJavaBeansのマッピングがさ...
// インスタンスまで生成される
Stocks stocks = new XLSBeans().load(in, Stocks.class);
List<IStock> list = stocks.getStocks();
for (IStock stock : list) {
System.out.println(stock);
}
}
}
実行結果は以下の通り(多少整形してます)
[市場=東証,銘柄コード=4689,銘柄名=ヤフー ,株価=42750,出...
[市場=東証,銘柄コード=6758,銘柄名=ソニー ,株価=6410,出来...
[市場=東証,銘柄コード=6501,銘柄名=日立製作所 ,株価=899,...
[市場=東証,銘柄コード=,銘柄名=日経平均(225) ,株価=1739...
[市場=東証,銘柄コード=,銘柄名=TOPIX ,株価=1704.22,出来高...
JavaBeansvのプロパティにExcelデータがマッピングされていま...
**このライブラリ、かなりよいかもっ。 [#v40e7741]
これを使えばExcelからJava定義クラスを自動生成するとか、色...
**関連リンク [#h1f2b0e5]
このライブラリを用いて、ExcelでJavaBeansしてソースコード...
-Eclipse/プラグイン開発のTIPS集/JavaBeansGenerator
こちらをどうぞ。
-[[Jakarta POIで、Excelドキュメントを操作する>http://www....
-[[POIで名前定義されているセルを取得する話 - kelkronsoの...
-[[POIで、名前定義の入ったカラムから値を取得。 - るいもの...
----
この記事は
#vote(おもしろかった[37],そうでもない[2])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
**XLSBeansというライブラリとは [#y497f32e]
開発をしてると設計書がExcelで記述されていたりします。んで...
**ダウンロード・インストール [#yb307b5a]
https://sourceforge.jp/projects/amateras/files/
よりダウンロードします。ダウンロード後、
javassist.jar
jxl.jar
ognl-2.6.9.jar
xlsbeans_1.0.2.jar
commons-lang-2.3.jar
らにクラスパスに通しておきました。
**やってみる [#h4b57b4c]
下記のような株価情報が書いてあるExcelファイルをJavaBeans...
#ref(excel.png)
銘柄ごとの株価情報(Excelの行)をひとつのJavaBeansとします...
public interface IStock {
String getMarket(); <-市場
String getStockCode(); <-銘柄コード
String getName(); <-銘柄名
String getPrice(); <-現値
String getVolume(); <-出来高
}
***ExcelシートとJavaBeansの指定 [#wfdf9d02]
また、Excelの行のIStockのリストとして返すStocksクラスも定...
import java.util.List;
import net.java.amateras.xlsbeans.annotation.HorizontalR...
import net.java.amateras.xlsbeans.annotation.Sheet;
@Sheet(name = "株価情報")
public class Stocks {
private List<IStock> stocks;
public List<IStock> getStocks() {return stocks;}
@HorizontalRecords(tableLabel = "現在値一覧", recordCl...
public void setStocks(List<IStock> stocks) {
this.stocks = stocks;
}
}
上のStocksクラスでは、Excelファイルのシート名の指定(株価...
:@Sheet(name = "株価情報")|このファイルの株価情報シートを...
:@HorizontalRecords(tableLabel = "現在値一覧", recordClas...
ということを意味しています。
***JavaBeansのプロパティとExcelの列のマッピング [#ne3c25e4]
また、JavaBeansとExcelファイルもXLSBeansライブラリのアノ...
import net.java.amateras.xlsbeans.annotation.Column;
import org.apache.commons.lang.builder.ToStringBuilder;
public class Stock implements IStock {
private String name;
private String market;
private String price;
private String stockCode;
private String volume;
//このプロパティはシート上の「市場」とマッピング
//セルの結合をサポートする
@Column(columnName = "市場", merged = true)
public void setMarket(String market) {this.market = ma...
//このプロパティはシート上の「銘柄」とマッピング
@Column(columnName = "銘柄")
public void setName(String name) {this.name = name;}
//このプロパティはシート上の「現在値」とマッピング
@Column(columnName = "現在値")
public void setPrice(String price) {this.price = price;}
//このプロパティはシート上の「コード」とマッピング
@Column(columnName = "コード")
public void setStockCode(String stockCode) {this.stock...
//このプロパティはシート上の「出来高」とマッピング
@Column(columnName = "出来高")
public void setVolume(String volume) {this.volume = vo...
// getterは省略してます...
}
以上でクラス構成は以下のようになりました。
#ref(classdiagram.png)
**Mainクラス [#w008ef05]
最後にMainクラスです。実際にデータを読み込んでみます。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.List;
import net.java.amateras.xlsbeans.XLSBeans;
import net.java.amateras.xlsbeans.XLSBeansException;
public class Main {
public static void main(String[] args) throws FileNotF...
XLSBeansException {
InputStream in = new FileInputStream("株価ファイル.x...
// streamからStocksクラスを作成
// ここでアノテーションからJavaBeansのマッピングがさ...
// インスタンスまで生成される
Stocks stocks = new XLSBeans().load(in, Stocks.class);
List<IStock> list = stocks.getStocks();
for (IStock stock : list) {
System.out.println(stock);
}
}
}
実行結果は以下の通り(多少整形してます)
[市場=東証,銘柄コード=4689,銘柄名=ヤフー ,株価=42750,出...
[市場=東証,銘柄コード=6758,銘柄名=ソニー ,株価=6410,出来...
[市場=東証,銘柄コード=6501,銘柄名=日立製作所 ,株価=899,...
[市場=東証,銘柄コード=,銘柄名=日経平均(225) ,株価=1739...
[市場=東証,銘柄コード=,銘柄名=TOPIX ,株価=1704.22,出来高...
JavaBeansvのプロパティにExcelデータがマッピングされていま...
**このライブラリ、かなりよいかもっ。 [#v40e7741]
これを使えばExcelからJava定義クラスを自動生成するとか、色...
**関連リンク [#h1f2b0e5]
このライブラリを用いて、ExcelでJavaBeansしてソースコード...
-Eclipse/プラグイン開発のTIPS集/JavaBeansGenerator
こちらをどうぞ。
-[[Jakarta POIで、Excelドキュメントを操作する>http://www....
-[[POIで名前定義されているセルを取得する話 - kelkronsoの...
-[[POIで、名前定義の入ったカラムから値を取得。 - るいもの...
----
この記事は
#vote(おもしろかった[37],そうでもない[2])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: