10

データを.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ファイルを開くことはできますが、空です。私のデータはそこに入力されません。私が間違っていることを提案してください。

4

1 に答える 1

20

FileWriteroutput.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);
}
于 2012-10-31T07:14:32.857 に答える