- - PR -
Excelファイルのコピー・編集について
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-11-11 12:01
現在、既存Excelファイルをコピー・編集しクライアント側でダウンロードできるような
システムを構築しています。 Excelの操作には"Jakarta POI"を使用しています。 現在、マクロが含まれているファイルを編集するとうまく?(エラーが発生し開けない) コピーできません。 マクロが含まれていないファイルについては、問題なくコピー・編集出来ます。 どなたか同様な処理を実装された方、対処方法をご教授ください。 セキュリティー上できないのでしょうか? (ドキュメントは英語で記述されていたので理解できてません) 特に"Jakarta POI"にこだわっているわけではありません。 | ||||
|
投稿日時: 2004-11-11 12:33
サーバがwindowsであれば、サーバにofficeをインストールし、
WSHでエクセルファイルを作成するという手段もあります。 むしろ、この方法の方が楽に作成できますよ。 | ||||
|
投稿日時: 2004-11-11 12:46
かつのりさん、ありがとうございます。
全くWSHは理解していませんが、Java側からスクリプトファイルを呼び出すことが 出来るのでしょうか?また、ファイル編集方法はどのようなものになるのでしょうか? | ||||
|
投稿日時: 2004-11-11 13:18
WSHで完結する定型処理で良いのなら WSH スクリプトファイルを用意して、Runtime#exec() で cscript.exe を呼べばいいんじゃないかな。 Java から Jakarta POI のように Excel ファイルをいじり倒したいなら、Java で OLE 連携しないといけないですね。私は以前、JCOMを使用して、Java から Excel ファイルの編集を行ったことがあります。Java で OLE を使用するためのライブラリは他にもたくさんありますが、JCOM は Excel 用の簡易ラッパーも用意しているので Excel 向きと言えます。 …と説明しておいてなんですが。OLE での Excel 編集は、マルチスレッド/マルチプロセスでの使用でいろいろと問題が発生することが多いです。複数クライアントからの接続可能性があるサーバーサイド処理であれば、やはり POI でなんとかするのが良いと思います。パフォーマンスも桁違いに良いですし。 私もいま、JCOM で Excel 編集するソフトウェアを POI で作り直すべくアレコレ調べているところです。 | ||||
|
投稿日時: 2004-11-11 13:24
WSHの起動はjava.lang.Runtimeで起動できますよ。
ファイルの編集方法は、ExcelVBAとほぼ同じになりますので、 その手のサイトを参考にしてはいかがでしょうか。 VBScriptを使用するのがいいと思います。 | ||||
|
投稿日時: 2004-11-11 13:43
未記入さん、かつのりさん、ありがとうございます。
かつのりさん> やはりWSHについては勉強が必要なのでその後試してみます。 未記入さん>もうすこしPOIを使用し、進めていきます。 先程と変わらずマクロを含んだシートの編集・コピーが出来ないんです・・ 調べてみます。 | ||||
|
投稿日時: 2004-11-11 16:02
POI 1.5 ではマクロ込みはダメ
http://jakarta.terra-intl.com/poi/hssf/limitations.html で、POI 2.0 では、そのまま書き出せる http://jakarta.apache.org/poi/hssf/limitations.html となっていますが、2.0 でもダメなのですか? http://cvs.apache.org/viewcvs.cgi/jakarta-poi/src/examples/src/org/apache/poi/hssf/usermodel/examples/ReadWriteWorkbook.java?rev=1.6&view=markup の EXAMPLE は マクロを破壊しますか? ==================================================== 白紙のBook に大きいマクロを貼り付けても [WARNING] Unknown Ptg ffffffb0 (-80) は起きない。 しかし、多世代にわたって編集をかけたシートを貼り付ける(他から) と 即実行エラーになります。ボタン・計算式・入力規則・データフィルタ も特に障害にはならないようだが、 セルの移動や行の追加・ソートなど 畳み込みなど、「修正が積み重なったシート」は 入力のパースでエラーになる。 修正に修正を重ねたシートはセルを削除して白紙にしても、 シート移動またはコピーで貼り付けると、エラーになる。 [ メッセージ編集済み 編集者: MMX 編集日時 2004-11-12 18:15 ] | ||||
|
投稿日時: 2004-11-11 17:57
MMXさん、ありがとうございます。
バージョンは2.5で最新です。 さきほど試した結果、マクロを含んでいると処理できないわけでなく ファイルサイズ(マクロ込み)が340KB程度だと正常にコピー出来ていないらしく 開くことができません。 20KB程度のファイルにおいては問題なく処理/編集が可能です。 コピーサイズに制限が・・あるいはマクロが関係しているのでしょうか? 宜しくお願い致します。 |
1|2|3
次のページへ»