legacy-knowledge-base
公開されました Jul. 2, 2025

Excel (XLS) にエクスポートする場合のフォーム内のフィールド数の制限

投稿者

Katalin Györgyövics

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 非常に長いフォームのエントリを Excel (xls) 形式にエクスポートしようとすると、ログに次のエラーが表示されてエクスポートに失敗します。
  • ERROR [http-nio-8080-exec-97][PortletServlet:119] javax.portlet.PortletException: com.liferay.dynamic.data.mapping.exception.FormInstanceRecordExporterException: java.lang.IllegalArgumentException: Invalid column index (256). Allowable column range for BIFF8 is (0..255) or ('A'..'IV')
    javax.portlet.PortletException: com.liferay.dynamic.data.mapping.exception.FormInstanceRecordExporterException: java.lang.IllegalArgumentException: Invalid column index (256). Allowable column range for BIFF8 is (0..255) or ('A'..'IV')

Environment

  • Liferay DXP 7.2

解決策

  • これは、 に 256 を超える列が含まれるフォームで発生します。 Excel 97 以前のバージョンと互換性のある Excel シート (.xls ファイル) には、最大 256 列を含めることができます。 Liferay (Apache POI) で使用されるライブラリはその制限を認識しており、それらの境界外の列が作成された場合に例外をスローします。 したがって、これはそのバージョンの Excel ファイル形式の制限です。 そして、その制限は Liferay 製品にも反映されます。
  • フォームを短縮できず、Excel 形式でエクスポートすることが非常に重要な場合は、カスタム モジュールを作成して、エクスポート プロセスで新しい Excel ファイル形式 (.xlsx) を使用することができます。これにより、より多くの列を使用できます。 あくまでも参考として、クラス DDMFormInstanceRecordXLSWriter.java をモデルとして使用することをお勧めします。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base