Spring 3 - 以 csv 格式导出数据
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4865928/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Spring 3 - export data in csv format
提问by tsunade21
I have some data in the DB and would like to be able to export it to a CSV file and provide a link so the user can download it.
我在数据库中有一些数据,希望能够将其导出为 CSV 文件并提供一个链接,以便用户可以下载它。
Is there any mechanism provided by Spring 3 for this?
Spring 3 是否为此提供了任何机制?
Do you know how could I do that?
你知道我怎么能这样做吗?
回答by Ritesh
I guess it should be easy to build a CSV or any text file view. Here are suggested steps:
我想构建 CSV 或任何文本文件视图应该很容易。以下是建议的步骤:
Create a View class (you can name it as
CSVView) extendingorg.springframework.web.servlet.view.AbstractViewOverride
renderMergedOutputModelas follows (pseudo code):
创建一个 View 类(您可以将其命名为
CSVView)扩展org.springframework.web.servlet.view.AbstractView覆盖
renderMergedOutputModel如下(伪代码):
BufferedWriter writer = new BufferedWriter(response.getWriter())
response.setHeader("Content-Disposition","attachment; filename=\"file.csv\"");
myDbData = (Whatever) modelMap.get("modelKey");
some kind of loop {writer.write(myDbData csv row); writer.newLine(); }
finally writer.flush(); writer.close();
BufferedWriter writer = new BufferedWriter(response.getWriter())
response.setHeader("Content-Disposition","attachment; filename=\"file.csv\"");
myDbData = (Whatever) modelMap.get("modelKey");
some kind of loop {writer.write(myDbData csv row); writer.newLine(); }
finally writer.flush(); writer.close();
After that just return ModelAndView with model (object Whateverwith modelKey) and view as CSVViewin the controller.
之后,仅仅与模型(对象返回的ModelAndViewWhatever用modelKey)和视图CSVView在控制器中。

