- PR -

JavaでのExcel操作

投稿者投稿内容
911
会議室デビュー日: 2007/08/06
投稿数: 6
投稿日時: 2007-08-06 16:46
初めての質問です。

現在社内システム構築を企画しています。
開発言語は、社内でも多数の開発経験があるJavaに決定しています。
現場からの要求の中で
1,Excelファイルを編集、業務データとして取り込む。
2,業務データをExcel化しクライアントへ落とし込み、編集->他のシステムへ連携
2点が現在検討項目として残されています。
現地点での想定と技術的な観点からの検討の結果、
1,JEXCELにてExcelを編集(読み書き)
2,JAKARTA POIにてExcelを編集(読み書き)
3,EML形式で編集(読み書き)
の3つの候補と絞りました。
但しこれら3つのメリット・デメリットが今一よく分からず、この先の評価や選定へ
繋げられなく往生しています。
これらのメリットやデメリットをご伝授頂ける方がいらっしゃいましたら
お力をお借り出来ませんでしょうか?

どうぞ宜しくお願いします。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2007-08-09 13:02
 見た感じJEXCELはインストールされたExcelへのCOMラッパーとして動作するみたいですね。ひょっとするとEXCELはこのような形での利用のされ方をするとライセンスなどはユーザー数分必要かもしれません。Microsoftに聞いてみたほうがいいと思います。
 ExcelVBAでできることは全てできるはずです。
 JAKARTA POIはJavaのみで作成されているのでそうした問題は発生しませんが、データが増えてくると(1万行ぐらい)百メガバイト単位でメモリを使用してしまうので、大きなデータを扱うのには向きません。行数が増えるとパフォーマンスも悪くなります。
 EML(おそらくXMLのことだと解釈します)形式は読み書きが自由ですし、SAXやJSPなどで出力すればメモリの消費量は少なく、パフォーマンスもいいと思います。ただし、全てのクライアントがXML形式を読み書きできるバージョンのExcelを利用していることが前提になるかと思います。
911
会議室デビュー日: 2007/08/06
投稿数: 6
投稿日時: 2007-08-09 16:57
Anthyhimeさん

ご意見有り難う御座います。
現地点で社内のインフラ管理の観点から言いますと、
1、Excelのライセンスは使用者数(PC導入数)確保されています。
2、Excelのバーションは全PC全て統一の2003です。
業務的な要件として
1、PCで編集したExcelシートをServerへUploadさせ、入力チェックを行った後に
  基幹のDatabaseへ取り込む。
2、基幹のDatabaseより、必要データを取り出し、Excelで編集可能なファイル形式
  でデータを編集し、PCへダウンロードする。
  この時幾つかのカラムには関数(SUM等)が埋め込まれます。また罫線、セルの
  網掛けなど必要とします。
要は日常PC上でExcelを使用している仕事を、基幹業務と連携させる事が狙いです。

JEXCEL API、Jakarta POI、XMLのいずれでも、業務的な要件は満たせるものと思い
ますが、それぞれのメリット、デメリットなどを比較し、実装形態を決定したいと
思っています。
例えば、経済性、開発生産性などなどです。

引き続きご意見を頂けますと幸いです。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-08-09 18:29
ちょっと視点を変えて、VBAからXMLHttpでサーバに送信というのはいかがでしょうか。
サーバ側は既存のWEBアプリで十分になりますし、
VBAは慣れている人が作れば、そこそこ生産性もよいかと思います。
911
会議室デビュー日: 2007/08/06
投稿数: 6
投稿日時: 2007-08-09 19:25
かつのりさん

ご意見有り難う御座います。
当て外れだった場合、ご勘弁下さい。
VBAからXMLHTTPでサーバーへ転送とご意見頂きましたが、これはPCへアプリケーションを配布する、もしくはExcelシートへマクロを仕掛けたものをPCへ配布しておく事が必要
なのでしょうか?
だとすると、出来るだけPCへのアプリケーションやExcelシートの配布は避けたいのです。
社内規定の標準ソフトだけにさせたいのが本音です。

宜しくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-08-09 19:39
マクロを含むシートの配布ですが、
トップページにリンクでも貼り付けておけば、配布は簡単です。

要件次第なので、要件に合わないようでしたら仕方がないですね。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2007-08-10 10:02
 XML方式はJSPやテンプレートエンジンやXSLTを使うと生産性や保守性はかなり高くなると思います。ただアップロードとなると、ユーザーからするとわざわざXML形式で保存したりするのはめんどくさそうなので、そうしたオペレーションがユーザー側で許容できないとすると、必然的にPOIを使わざるをえないと思います。もしそれがクリアできるのであれば、XML形式がベストではないでしょうか。
 POIはゴリゴリJavaで書いてゆく必要があるので、シートの複雑性にもよりますが、生産性や保守性はXML形式よりはだいぶ下がると思います。
 JEXCELはサーバーサイドでExcelを複数起動する必要があるので、Excelの動作の安定性やリソースの問題など、ちょっと解決が難しい問題が発生するかもしれません。またこうしたサーバーにインストールし複数人でネットワーク上で利用する方法がライセンス的に可能なのかという問題もあります。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2007-08-10 10:27
「JEXCEL」って http://jexcelapi.sourceforge.net/ のことでしょうか?
だとすると「JEXCELはインストールされたExcelへのCOMラッパーとして動作するみたい」はどこに書かれていますか? > Anthyhimeさん
SorceForgeのプロジェクトサマリーにも「
OS Independent (Written in an interpreted language)」って書かれているので、EXCELがインストールできないUNIXでも使えるのではないかと思っていました。

スキルアップ/キャリアアップ(JOB@IT)