Apache POI を使用して、5000 行を超える行と 10 を超えるワークシートを含む Excel ファイルから読み取ろうとしています。すべての列と行の値を取得して ArrayListMultiMap> に格納すると、このロジックは完全に正常に機能し、これを格納しますこのような VelocityContext のオブジェクト:
VelocityContext context = new VelocityContext();
context.put("excelMap", excelMap);
このコレクションを速度テンプレートで使用して、excelMap を反復処理して XML ファイルに値を入力する必要があります。
VelocityEngine vEngine = new VelocityEngine();
vEngine.setProperty("resource.loader", "class");
vEngine.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
Template t = vEngine.getTemplate(vmTemplate);
**StringWriter sw = new StringWriter(excelMap.size());**
**t.merge(context,sw)**
ただし、StringWriter の容量は常に 1024 であり、既に PrintWriter を BufferedWriter、StringBuilderWriter と組み合わせて試していると、アプリケーションがマージ行に到達するとハングし、最後に OutOfMemory 例外が表示されます。
誰でも私を助けてもらえますか、私はすでに StringWriter と PrintWriter に関連するすべての投稿を準備していますが、うまくいきません。
ありがとうございました