【发布时间】:2021-11-11 08:34:14
【问题描述】:
我需要导出一个txt格式的csv文件;我想为单独的字段使用管道。 我的代码类似于 String[] x = {its1, its2, its3, its4, its5 };
我需要:{its1|其2|其3|其4|它5 }
ps。我当然在控制器中。
@Controller
public class CSVFileDownloadController
{ @RequestMapping(value ="/downloadCSV")
public void downloadCSV(HttpServletResponse response) throws IOException {
String csvFileName = "books.csv";
response.setContentType("text/csv");
// creates mock data
String headerKey = "Content-Disposition";
String headerValue = String.format("attachment; filename=\"%s\"",
csvFileName);
response.setHeader(headerKey, headerValue);
List<Book> listBooks = Arrays.asList();
// uses the Super CSV API to generate CSV data from the model data
ICsvBeanWriter csvWriter = new CsvBeanWriter(response.getWriter(),
CsvPreference.STANDARD_PREFERENCE);
String[] header = { "Title", "Description", "Author", "Publisher",
"isbn", "PublishedDate", "Price" };
csvWriter.writeHeader(header);
for (Book aBook : listBooks) {
csvWriter.write(aBook, header);
}
csvWriter.close();
}
}
谢谢@M.Deinum
【问题讨论】:
-
“我需要”你不能拥有它,因为看起来你想要这样的 Java 代码,但它不是有效的 Java。您的意思是当您将其打印到文件时要呈现为
its1| its2|等? -
请出示您的控制器。
-
是的,在出来的文本文件中
-
@kirinya 添加在主要问题上
-
不要使用
CsvPreference.STANDARD_PREFERENCE,而是使用Builder构建自己的。
标签: java csv model-view-controller controller