現在、弊社システムにてサーバーサイドでのファイル処理に Aspose 製品(主に Aspose.Cells および Aspose.PDF)を利用しておりますが、数式計算において例外が発生する事象が生じております。 本件につきまして、解決策や仕様についてご教示いただきたくご連絡いたしました。
■ 発生している事象 サーバーサイドにてExcelファイルの数式計算(CalculateFormula等)を実行した際、計算順序の解決に失敗して例外がスローされております。 そのため、現在の出力結果は以下の状態となっています。
PDF出力: Asposeでの数式計算が失敗した(エラーとなっている)状態のままPDF化され、出力される。
Excel出力: 同様にAspose側では計算失敗の状態でファイルが出力されるが、出力されたExcelファイルをMicrosoft Excelアプリケーションで開いた際に、Excel独自のロジックで再計算が実行されるため結果的に正常な値が表示される。
■ 調査により推測される例外の原因 Excelの数式は、依存関係(Bセルの値を使うAセルは、B→Aの順で計算するなど)を解決して計算する必要がありますが、サーバーサイドのAspose.Cellsがこの計算順序の解決に失敗している状況です。 対象のファイルには以下の特徴があり、これらが起因していると考えております。
- 従来型配列数式の多用: 特定のシート(sheet1)だけで、
t="array"(Ctrl+Shift+Enter 形式)の従来型配列数式が 270 個ほど存在している。これらを正しく処理しきれていない。 - シート間自己参照の存在:
IF(成績証明書!A53 < 時間データ!$B$9, INDEX(科目関連クエリ!A:DO, 成績証明書!$A53+1, ...), "")のように、数式が配置されている自身と同じシートを参照するような複雑な数式が大量に存在する。
■ ご質問事項 社内では「該当のExcelから従来型配列数式を排除する」という対応も検討しておりますが、まずはAspose側での解決可否を確認いたしたく、以下の3点についてご回答をお願いいたします。
-
既存環境での対応策について 大量の配列数式や複雑な参照を持つファイルに対して、計算順序の例外を回避し、正しく計算させるためのオプション設定やコーディング上の回避策はございますでしょうか。
-
バージョンアップによる解決の可能性について 本件は、Aspose.Cells の最新バージョンへアップデートすることで解消される(または既に修正済みの既知の問題である)可能性はございますでしょうか。 ※現在の利用バージョンは【Aspose.Cells for .NET 25.8.0】です。
-
アップグレード費用について 仮に最新版へバージョンアップすることで解決する場合、現在弊社が契約しているライセンスにおいて無償でアップグレードすることは可能でしょうか。 (ライセンス更新の要否や費用発生の有無についてご教示ください。
お手数をおかけいたしますが、上記ご確認およびご回答のほど、よろしくお願い申し上げます。