這個很多網站都有,找了一個,感覺好用:
String queryResult = ...;
response.setContentType("application/csv");
response.setHeader("Content-Disposition", "inline; filename="result.csv"");
PrintWriter out = new PrintWriter(new OutputStreamWriter(
response.getOutputStream(), "UTF-8"));
out.print(queryResult);
out.close();
但我自己在做的時候遇到一個實際問題,因為我要匯出的結果中有時間,它的格式是這樣的2007-09-01 07:00:00,用notepad開啟的話肯定沒問題,但如果用excel開啟就有點問題了,時間段會變成####,因為excel的時間格式是01/09/2007 07:00:00。所以要在匯出前處理下這個string。
private static final DateFormat formatVLS = new SimpleDateFormat("yyyy-MM-dd HH:mm");
private static final DateFormat formatCSV = new SimpleDateFormat("dd/MM/yyyy HH:mm");
private String convertTimeForCSV(String input) throws VLSException ...{
try ...{
return formatCSV.format(formatVLS.parse(input));
} catch (ParseException e) ...{
// TODO Auto-generated catch block
throw new VLSException(VLSConstants.ERROR_FORMAT);
}
}