- PR -

[WARNING] Unknown Ptg 60 (96)は何か?

1
投稿者投稿内容
kanon
会議室デビュー日: 2007/11/14
投稿数: 3
投稿日時: 2007-11-14 16:44
始めまして。

私はこの度Java側でExcelを操作する為にjakarta-poiを使用する事となったのですが、実行時に次のログメッセージが出力されました。

[WARNING] Unknown Ptg 60 (96)

HSSFWorkbookからの処理内で発生しているログだという事までは調べられ、ログを吐き出しているのがNameRecordクラスという所までは分かったのですが、この時吐き出されているログメッセージの中で、60 (96)はExcelがどんな状態の時に出されるのでしょうか?
申し訳ないのですが、ご存知でしたらお教え願いますでしょうか。
でゅうく
大ベテラン
会議室デビュー日: 2003/11/30
投稿数: 129
投稿日時: 2007-11-15 15:36
はじめまして kanon さん。

Ptg 0x60 が何なのかは知りませんが、POI のバージョンを最新にすることで、他の Unknown Ptg の警告が出なくなったりするそうです。 (どうでもいいですが、リンク先の投稿日はちょうど3年前の今日ですね。)
この時は 2.5 から 2.5.1 に上げることで解決したようです。
現在の最新バージョンは 3.0.1 ですので、古いバージョンをお使いの場合は、最新版を試してみるのもいいかもしれませんね。
私もこの方法でなんかの警告が出なくなりました。

私には何のことかはサッパリ分かりませんでした、POI の開発者である Avik さんによると、Ptg 0x60 は "Array operand" なのだそうです。
質問者の Dmitry さんは、問題のあるシートから新しいシートに全てのセルをコピーした上で、問題のシートを削除することで対応しているのだそうです。
kanon
会議室デビュー日: 2007/11/14
投稿数: 3
投稿日時: 2007-11-19 09:03
返信が送れて申し訳ありません。

お返事ありがとうございます。おかげさまで、概要を説明する分での材料を揃える事ができました。
kanon
会議室デビュー日: 2007/11/14
投稿数: 3
投稿日時: 2007-11-19 14:28
 また質問を載せてしまう事になって申し訳ないのですが、でゅうくさんにお答え頂いた内容の中に『Ptg 0x60は"Array operand"』であるという説明の記述があります。

 私はこの一文を、Excelの中で配列数式をExcelのセル内で使用した時の記述の事だと思っていました。その理由は、配列数式を使用したExcelファイルをバイトコードで変換した際に、[ARRAY]という一文が追加されていた為です。

例.=SUM(IF(B1:B10="販売実績",C1:C10,""))
この一文をセルに入力した際に、CTRLとSHIFTを押した状態でEnterキーを入力。
セルB1〜B10までに"販売実績"と入力されている時のC1〜C10のセル内の値が合計される。
勿論結果が出力されるのは、対象のセルにデータが入力された状態でですが。

 しかし、Ptg 60 (96)のエラーが出ているExcelファイル内では、どのセルの中でも配列数式を使用していませんでした。バイトコード単位で変換を行っても[ARRAY]という一文もありませんでした。

 この理解が合っているのかどうかを確認を取りたいのですが、どなたかお分かりになられる方はいらっしゃらないでしょうか? 申し訳ありませんが、返答よろしくお願いいたします。
1

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