3

ColdFusion を使用して、大きな Excel スプレッドシート (約 20 シート) をシートごとに解析する必要があります。[java.lang.OutOfMemoryError: GC オーバーヘッド制限を超えました]で大量のデータを処理すると、cfspreadsheetタグが失敗します。Apache POI ユーザー API は直接同じように動作します。

<cfscript>
  pkg = CreateObject("java", "org.apache.poi.openxml4j.opc.OPCPackage").open(JavaCast("string", fileName));
  // error on next line
  wb = CreateObject("java", "org.apache.poi.xssf.usermodel.XSSFWorkbook").Init(pkg);
</cfscript>

ユーザー API の代わりにApache POIイベント APIを使用しようとしましたが、Java 継承の問題に直面しました。XSSF and SAX (Event API)ColdFusion で大規模なスプレッドシートの処理に使用したことのある人はいますか?

4

1 に答える 1

2

結局、CF + Apache POI Event API + Mark Mandel のJavaLoader.cfc使用に成功しました。を使用してJavaでExcelパーサーを実装しましたがXSSF and SAX Event API、今では動作し、非常に高速に動作します。解析するテンプレートが単純ではなかったため、これは簡単ではありませんでした。また、コメントに示されているように、ヒープ サイズを大きくすると安くなる可能性があります。

于 2014-07-29T14:49:32.930 に答える