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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 04:18:03  来源:igfitidea点击:

Spring 3 - export data in csv format

springcsv

提问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 或任何文本文件视图应该很容易。以下是建议的步骤:

  1. Create a View class (you can name it as CSVView) extending org.springframework.web.servlet.view.AbstractView

  2. Override renderMergedOutputModelas follows (pseudo code):

  1. 创建一个 View 类(您可以将其命名为CSVView)扩展org.springframework.web.servlet.view.AbstractView

  2. 覆盖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.

之后,仅仅与模型(对象返回的ModelAndViewWhatevermodelKey)和视图CSVView在控制器中。