我在将数据导出到Excel表单时遇到问题,这是因为我的团队中的其他开发人员所做的一些代码。所以主要的问题是使用JSP页面将数据导出到Excel或.cvs,但不使用任何HTML代码。 任何建议也可以帮助我探索在我的发展舞台上。感谢您的努力。没有用于将数据导出到Excel的HTML代码的JSP页面
8
A
回答
16
为此更好地使用Servlet。原始Java代码不属于JSP文件,这仅仅是maintenance trouble的配方。
首先,创建一个简单的Java工具类这需要例如List<List<T>>
或List<Data>
(其中Data
表示一行)表示CSV内容和OutputStream
方法参数和写入逻辑它执行数据复制任务。
一旦你得到这个工作,创建一个Servlet类,它将一些CSV文件标识符作为请求参数或pathinfo(我建议使用pathinfo作为由雷德蒙德团队开发的某个webbrowser,否则将检测到filename/mimetype失败)使用标识符从某处获取List<List<T>>
或List<Data>
,并沿着一组正确的响应标头将其写入HttpServletResponse
的OutputStream
。
这里有一个基本的开球例如:
public static <T> void writeCsv (List<List<T>> csv, char separator, OutputStream output) throws IOException {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, "UTF-8"));
for (List<T> row : csv) {
for (Iterator<T> iter = row.iterator(); iter.hasNext();) {
String field = String.valueOf(iter.next()).replace("\"", "\"\"");
if (field.indexOf(separator) > -1 || field.indexOf('"') > -1) {
field = '"' + field + '"';
}
writer.append(field);
if (iter.hasNext()) {
writer.append(separator);
}
}
writer.newLine();
}
writer.flush();
}
这里有一个例子,你如何使用它:
public static void main(String[] args) throws IOException {
List<List<String>> csv = new ArrayList<List<String>>();
csv.add(Arrays.asList("field1", "field2", "field3"));
csv.add(Arrays.asList("field1,", "field2", "fie\"ld3"));
csv.add(Arrays.asList("\"field1\"", ",field2,", ",\",\",\""));
writeCsv(csv, ';', System.out);
}
和一个servlet中,你基本上可以做到:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = request.getPathInfo();
List<List<Object>> csv = someDAO().list();
response.setHeader("content-type", "text/csv");
response.setHeader("content-disposition", "attachment;filename=\"" + filename + "\"");
writeCsv(csv, ',', response.getOutputStream());
}
地图这个servlet在/csv/*
之类的东西上,并且像那样调用它。这基本上都是。 pathinfo中的文件名非常重要,因为Redmond团队开发的某个Web浏览器会忽略Content-Disposition
标头的filename
部分,而是使用URL的最后一个路径部分。
相关问题
- 1. 将导出数据从JSP页面压缩到多个Excel表格在JAVA/JSP中同时(导出+ ZIP)
- 2. 将HTML表格数据导出到Excel
- 3. 如何从jsp页面导出图表到excel页面
- 4. 将JSP数据导出为Excel图像
- 5. 将JSP页面转换为使用Java代码的静态HTML
- 6. 使用java/javascript代码将html表导出到Excel中
- 7. 将数据导出到Excel
- 8. 将数据导出到excel
- 9. 如何使用html代码将html页面转换为excel
- 10. HTML代码流出页面?
- 11. HTML代码流出页面?
- 12. 如何将JSP页面的一部分导出到Excel工作表
- 13. 将数据导出到Joomla的Excel
- 14. 用于将数据从行转置到列的Excel VBA代码
- 15. 使用JQuery将HTML导出到Excel
- 16. jQuery代码在JSP页面
- 17. 有没有办法从损坏的数据库导出代码?
- 18. 从没有页眉/页脚的Crystal Reports中导出到Excel
- 19. 如何将多个页面的gridview数据导出到excel文档中?
- 20. 使用迭代循环将数据导出到excel
- 21. 导出jsp的特定表ID到excel
- 22. 用于jsp页面的Doxygen?
- 23. 将由节点创建的HTML代码追加到HTML页面
- 24. 将没有主要功能的scala代码导出到jar
- 25. 页面的HTML代码
- 26. Crystal Report导出到Excel(仅限数据)页面标题
- 27. 将数据导出到excel mobile
- 28. 将数据从jira导出到Excel中
- 29. 将数据导出到Excel C#
- 30. 将数据导出到excel表格
绝对是一个servlet的工作。 +1 – ChadNC 2009-11-27 16:33:18
我试过类似这样的解决方案,但我通过https获取文件时遇到了问题。 它为什么会通过https失败? – 2009-12-23 10:49:59
问题在于别的地方。通过按右上方的“Ask Question”按钮询问您自己的问题,并详细说明问题。 – BalusC 2009-12-23 12:23:36