java – 如何使用servlet创建csv文件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何使用servlet创建csv文件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1866字,纯文字阅读大概需要3分钟。
内容图文
![java – 如何使用servlet创建csv文件?](/upload/InfoBanner/zyjiaocheng/761/d7b6162e2e684da59c265ab1f85b18d2.jpg)
我想从servlet下载csv文件.Data来自Object [] obj = search.getSearch();
我有数据对象[],我需要写入csv并下载.
你能帮帮我怎么做servlet课吗?
解决方法:
Object []如何表示CSV数据?它是包含一行有多列还是多行有一列?我想象Object [] []或List< List< Object>>更有意义.
无论如何,在创建CSV文件时你必须遵守RFC4180 spec.它基本上很简单,只有3条严格的规则:
>字段用逗号分隔.
>如果字段中出现逗号,则该字段必须用双引号括起来.
>如果字段中出现双引号,则该字段必须用双引号括起来,并且字段中的双引号必须通过另一个双引号进行转义.
这是一个启动示例,它基于List< List< T>>执行此操作.作为源和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();
}
以下是如何在Servlet中使用它:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<List<Object>> csv = getItSomehow();
response.setHeader("Content-Type", "text/csv");
response.setHeader("Content-Disposition", "attachment;filename=\"file.csv\"");
writeCsv(csv, ';', response.getOutputStream());
}
(请注意,基于欧洲的语言环境对CSV文件使用分号而不是逗号,请随时更改)
内容 – 附件处理将强制另存为对话框.请注意,MSIE有一个错误行为,它不会将文件名作为默认文件名保存为另存为对话框,但它取代了pathinfo的最后一部分.因此,如果此servlet例如由http://example.com/csv调用,那么您将获得csv作为默认文件名.而是将其附加到pathinfo,如下面的http://example.com/csv/file.csv.只应将servlet映射到/ csv / *而不是/ csv的url模式.
内容总结
以上是互联网集市为您收集整理的java – 如何使用servlet创建csv文件?全部内容,希望文章能够帮你解决java – 如何使用servlet创建csv文件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。