有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java导出为CSV文件并在浏览器中打开

我遇到了一个问题,需要将数据导出到数据库。csv文件,但不存储在文件系统中的文件-相反,我需要简单地打开浏览器中的文件

我已经编写了下面的代码来写入数据。csv文件:

FileWriter myWriter = new FileWriter("output.csv");
myWriter.append(EmployeeCode);
myWriter.append(',');
myWriter.append(Band);
myWriter.append('\n');
response.setHeader("Content-Disposition", "attachment; filename=output.csv"); 
response.setContentType("application/ms-excel"); 
response.setCharacterEncoding("UTF-8");

我能开一家银行。csv文件,但它是空的。我的数据没有填充到其中。 请说明我做错了什么


共 (1) 个答案

  1. # 1 楼答案

    FileWriter将内容写入output.csv文件,而不是响应输出流。你应该这样做:

    OutputStream out = response.getOutputStream();
    

    以获取响应输出流

    然后将内容写入out流中,类似于:

    response.setContentType("application/ms-excel"); // or you can use text/csv
    response.setHeader("Content-Disposition", "attachment; filename=output.csv"); 
    try {
        // Write the header line
        OutputStream out = response.getOutputStream();
        String header = "EmployeeCode, Band\n";
        out.write(header.getBytes());
        // Write the content
        String line=new String(EmployeeCode+","+Band+"\n");
        out.write(line.toString().getBytes());
        out.flush();
    } catch (Exception e) {
       log.error(e);
    }