我正在实现以下片段代码以在Spring应用程序中的浏览器中导出xls文件:
@RequestMapping(method = RequestMethod.POST, value = ResourcesPath.EXCEL,
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
@ResponseStatus(HttpStatus.OK)
public void loadExcel(ReportFilter filter, HttpServletResponse response) throws
IOException {
List<ReportItemVO> result = // list of ReportItemVO ...
Date today = new Date();
response.addHeader("Content-Disposition", "attachment; filename=today.getTime() + ".xls");
BufferedOutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
xlsExportService.saveSpreadsheetRecords(ReportItemVO.class, result, outputStream);
outputStream.flush();
outputStream.close();
}
public interface XlsExportService extends SpreadsheetService {
}
@Autowired
private XlsExportService xlsExportService;
在这里,导出result.size()的数据时一切正常
我发现 saveSpreadsheetRecords 使用 HSSFSheet,它限制在 65535 行中,并且我需要使用 XSSHSheet,但我没有找到任何线索来使用它(ReportItemVO.class,result,outputStream)作为输入。
有什么想法吗?
在XLS的旧Excel格式中,最大行数为65535:请参见。
尝试以XLSX格式保存,最多可保存1048576行。
您应该实现SpreedsheetService
而不是扩展它
@Component
public class XlsExportService implements SpreedsheetService {
}
然后您可以填写使用XSSFSheet而不是HSSFSheet的方法
当隐藏一个静态字段时,没有限制字段在子类中的访问级别,它甚至可以是非静态的和其他数据类型的。
问题内容: 因此,我正在处理在Websphere 7(JDK 6)上运行的旧servlet代码。开发环境设置使用Tomcat 6(JDK 6)。 为什么它在Websphere 7上而不在Tomcat 6上可以工作? 这与应用程序服务器有关吗? 如果您的回答为“是”,则为“否”。2,除了分解代码或使用动态包含之外,您在Tomcat 6(JDK 6)上是否有解决方法? 该计划与将静态包含更改为动态包含
与HTTP不同,websocket在从HTTP升级后保持长时间连接。 即使操作系统被调优为使用所有端口,总共仍然只有65536个端口。NGINX有可能超过这个限制吗? 一个潜在的解决方案是,但是它缺少文档--至少我没有找到除了下面这段
我对在我想要克隆对象的类中重写克隆方法感到困惑。 因为Java中的每个类都是从Object扩展而来的,所以它应该有clone方法,但是我们仍然被迫重写clone。为什么要求? 另外,我在一些地方阅读了重写克隆对象并将其公之于众的内容。我想知道,为什么会这样? 欢迎提供所有答案。
所以我需要使用Java Dijkstra算法。我在这里找到了Dijkstra的一个有效例子。但在我的例子中,我有大约5000个顶点。我得到了一个错误:main方法(String[])的代码超过了65535字节的限制。在stackoverflow上有一些类似的主题,但我找不到如何解决这个问题的实现。有人能给我一些代码来解决这个问题吗。。 编辑 我试图从MySQL表中获取数据,但在声明vertex时遇
当我们不知道任何给定对象的finalize()方法何时可以运行时,我们需要在java中重写finalize()方法的哪里?我们可以在finalize()中关闭什么类型的资源?GC调用finalize()方法的最佳机会是什么?