- PR -

Excelファイルのコピー・編集について

投稿者投稿内容
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-11-11 23:19
あとは、POI の読み書きする Excelのバージョン(最新ではない)
は適合しているか?
とか、マクロの参照設定は クライアント側でも満たされているか?
くらいかと、おもいますが。+マクロのセキュリティ設定
ブラウザ表示のExcelがクライアントのファイルを読み書きするとか。

デバッグ方法としては、構築途中の POI-Excelを サーバーにファイル
保存して、それを手でクライアントのPCに送り、開いてみる。
どの段階で、不調になるかわかります。

[ メッセージ編集済み 編集者: MMX 編集日時 2004-11-12 08:47 ]
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2004-11-12 09:13
MMXさん、ありがとうございます。
上記に書かれている項目については確認済みです。
アップリケーションにて試したところ、


in = new FileInputStream(fileUrl);
POIFSFileSystem fs = new POIFSFileSystem(in); ←ココ
workbook = new HSSFWorkbook(fs);


で以下のワーニングが発生していました。
(300KB程度のマクロを含んだファイルの読み込み)

[WARNING] Unknown Ptg 0 (0)
[WARNING] Unknown Ptg 30 (48)
[WARNING] Unknown Ptg 30 (48)
[WARNING] Unknown Ptg ffffffba (-70)
[WARNING] Unknown Ptg fffffffc (-4)
[WARNING] Unknown Ptg ffffffc6 (-58)
[WARNING] Unknown Ptg ffffffa4 (-92)
[WARNING] Unknown Ptg ffffff8b (-117)


何かわかりましたらご教授、お願いいたします。

MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-11-12 10:05
> in = new FileInputStream(fileUrl);
が読み込み中にち切れてないか?
全部 メモリーに吸い込んでから、サイズを確認して
new POIFSFileSystem(in); ←ココ
かな?
====================
POIの バージョンは 2.5 なのでしょうか、どこからダウンロード?

[ メッセージ編集済み 編集者: MMX 編集日時 2004-11-12 10:45 ]
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2004-11-12 10:30
MMXさん、ありがとうございます。

サイズ等、調査してみます。読み込み中に途切れているかどうか
は調べる方法がわかりません・・
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-11-12 10:53
件名:istreamをbyte[]に落としたい
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16517&forum=12&3
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2004-11-12 11:23
以下、個人的な意見ですが。

POIは、Jakartaプロジェクトの中でも特殊なプロジェクトで、「非公開のOLE複合ド
キュメントフォーマットを、開発者自身が独自解析して」得られた情報を元に開発し
ているようです。(かつて市販されていた仕様書らしき「ハンドブック」を利用して
いたそうですが、如何せん情報は足りないし、現実と異なることも多くて…というこ
とのようです。)
他の「公開された仕様に適合するように」作成してあるプロジェクトとは、その点で
異質です。

POI開発者が把握していないEXCELファイルフォーマット仕様に引っかかるようなファ
イルを作成した場合、それをMS-EXCELがパースしたときに挙動がどうなるかは、わか
らないと思います。

そして、OLE複合ドキュメント上のWorkbookオブジェクト以外のオブジェクトについて
は、POIは操作をしていないので、そちらとの相互参照関係が存在する場合に、結果的
にMS-EXCELがパースに失敗するファイルが作成されてしまうことは十分にありえる事
態だと思います。

そのような場合、対処方法は以下の2つだと考えます。
1.POIのUSER-MLやBugzillaに現象報告をし、開発者による問題切り分け、対処方法
の答え、場合によってはバグフィックスを待つ。
2.POIを使うのをやめる。

POIは、POIを通じてexcelファイルを新規作成することについては、その仕組み上
(POI開発者が把握している仕様に関する要素しか作成しない)ので安定稼動する
と思いますが、それ以外の使用方法でどうなるかは分からない、というのが、私
がこれまで(Ver2.0まで)使用してきた感触で得られた結論になっています。

現状のPOIを、VBA等の完全な代替手段と考えるべきではない、限定的な用途に関
しては代替できるかもしれない、くらいだと思いますよ。
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2004-11-12 12:50
シュンさん、MMXさん、ありがとうございます。

確かにシュンさんのおっしゃる通りのような気がします。
色々、求めすぎていたようです。
POIではなく、別のものを試してみようと思います。
単純なファイルである場合は、そのまま行きますがどうも
それは変更できないようなので・・
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-11-12 12:53
POIで Excel の読み込みが本当に失敗するのなら
IE の枠の中に Excelを表示するのでなければ

CSVデータとマクロ付き0件Excelをzipでまとめてダウンロードさせる
Excelを開く時にVBAで添付CSVを吸い込んで形を作る、とか。
==========================================
あるいは、マクロ無しPOI-Excelをダウンロードさせて
それを別のVBやVBAで開く。

[ メッセージ編集済み 編集者: MMX 編集日時 2004-11-12 13:06 ]

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