我正在尝试使用 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 相关的帖子,但没有运气。
谢谢