MZ Platformとは › 掲示板 › MZプラットフォームユーザー会掲示板 › Excelファイルアクセスについて
- このトピックは、 5 返信、 2 投稿者 です。最終更新日: 4 週 前 MZPlatformユーザー会
-
著者投稿
-
2024年10月24日 at 3:07 PM #7653ORIteck CO., LTD一般参加者
xlsx形式のExcelを扱うのにExcelファイルアクセスコンポーネントで「ファイルからブックを読み込んで選択する」メソッドを実行すると添付のエラーが発生します。
どのような状態でしょうか?雛型のExcelを読み込んで、書式/数式/罫線/セル色などの設定をし最後に「ファイルに現在のブックを書き出す」メソッドを実行しています。
➀数式設定をした場合に「evaluateCurrentBookFormula」メソッドを実行しない場合
この状態で作成したExcelファイルを開き何もせずに閉じると「変更を保存するかのメッセージ」が表示されます。この状態のExcelファイルは、添付のエラーが発生します。保存するとその後はエラーは発生しません。➁作成したExcelファイルを開き何もせずに閉じてこのファイルを「ファイルからブックを読み込んで選択する」と添付のエラーが発生します。上書保存後はエラーは発生しません。
一度作成したExcelファイルに対して開かずに追加情報を加えたいのですがこのエラーが発生します。
添付ファイル:
2024年10月24日 at 6:08 PM #7655MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
取り急ぎエラーメッセージの意味するところをご連絡いたします。
xlsx形式のエクセルファイルは、xmlファイルがZIP圧縮されたものとなります。
[エクセルファイルアクセス]で使用しているApachePOIでは、ファイルの圧縮率が基準値(1%)以上に大きいと、お知らせいただいたエラーが発生するようです。
圧縮率の高い小さいサイズのファイルを展開すると大きなファイルサイズとなり、メモリーなどに影響をあたえるため、セキュリティリスクに対する備えとしてこのような仕様になっています。改善方法については検討いたしますので、今少しお時間を頂ければ幸いです。
よろしくお願い申し上げます。2024年10月25日 at 3:00 PM #7656MZPlatformユーザー会サイト管理者解決までお時間を頂いており、申し訳ございません。
差し支えの無い範囲で結構ですので、元の雛形ファイル、数式などを設定してエクセルファイルアクセスで保存したファイル、それを一度開いて保存し直したファイルの3つをお送りいただけないでしょうか。機密情報が含まれている場合は、無理にお送りいただかなくても構いません。
[エクセルファイルアクセス]でファイル作成時にファイルの圧縮率が高くなってしまう要因が発見できればと考えております。大変お手数をお掛けいたしますが、どうぞよろしくお願い申し上げます。
2024年10月25日 at 4:11 PM #7657ORIteck CO., LTD一般参加者3条件のファイル添付します、よろしくお願いします。
xls形式では問題ないのでしょうか?合わせてお願いします。
2024年10月25日 at 4:17 PM #7659ORIteck CO., LTD一般参加者添付ファイルにたいする情報です。
雛型ファイルですがSheetは「生産順」になります。雛型ファイルとしてSheet「計画ドライブ別」は必要ありませんが現在はこのような状態です。
2024年10月28日 at 2:57 PM #7660MZPlatformユーザー会サイト管理者ファイルをお送りいただき有難うございます。
色々とご面倒をお掛けいたしまして、申し訳ございませんでした。ApachePOIが危険ファイルとして検出するファイル圧縮率の基準値をMZで設定できるように改修いたしましたので、以下をお試しください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
1)添付の「pfexcelaccs.jar」をMZPlatform\4.0\jarsフォルダに入れます。
2)MZPlatform\4.0\etcフォルダ内の『PlatformClassPath.ini』をメモ帳などで開き、パスを追加記述し、保存します。
例えば以下のような内容になります。
——————————
# MZ Platform ClassPath
jars/pfexcelaccs.jar
jars/mzextension.jar
jars/mzplatform.jar
・・・・
——————————
3)アプリケーションビルダーを再び立ち上げてください。4)EXCELファイル読み込みのアプリケーションファイルに新規メソッド「setMinInflateRatio(Double)」の処理を設定します。
アプリケーション開始時、あるいは適当なタイミングで上記メソッドを行う処理を設定し、引数にデフォルト値の「0.01」よりも小さい数値を設定します。セキュリティ上心配のないファイルのみを読み込むことが確実なら設定値は「0」でも可です。5)アプリケーションを実行してMinInflateRatioの設定が行われた後、アプリケーションファイルを保存します。一旦数値を設定した後は、設定値がアプリケーションファイル内に保存されるので、毎回処理を行う必要はありません。エクセルファイルの読み込みを行い、エラーが発生しないことを確認したら、「起動しない」モードに変更または処理を削除してしまっても結構です。
以上お試しいただき、状況が改善されない場合は、お手数ですが再度ご連絡頂ければ幸いです。
よろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 4 週 前 に編集されました。
添付ファイル:
-
著者投稿
- このトピックに返信するには、ログインしてください。