我想從java寫一個csv文件。完美的作品,但是當我寫作例如19.4到csv-file,在excel中顯示爲19。4月。所以我在19,4之前放了一個「\」。價值現在顯示爲數字,但我有'在它前面。當我點擊進入Excel中的列並輸入=>'消失。 我必須做什麼,'從一開始就沒有顯示?從java格式化csv列
下面是一些例子源(從servlet):
公共無效的doWork(HttpServletRequest的請求,響應HttpServletResponse的){
byte[] fileData = null;
String buffer = "";
buffer += "First";
buffer += ";";
buffer += "\'";
buffer += "19,4";
buffer += ";";
buffer += "\n";
buffer += "Second";
buffer += ";";
buffer += "\'";
buffer += "15,1";
buffer += ";";
buffer += "\n";
buffer += "Third";
buffer += ";";
buffer += "\'";
buffer += "1,7";
buffer += ";";
buffer += "\n";
fileData = buffer.getBytes("UTF-8");
byte[] fileDataWithBOM = new byte[fileData.length+10];
fileDataWithBOM[0] = (byte)0xef;
fileDataWithBOM[1] = (byte)0xbb;
fileDataWithBOM[2] = (byte)0xbf;
System.arraycopy(fileData, 0, fileDataWithBOM, 3, fileData.length);
ServletOutputStream out = null;
String fileName = "Accounting.csv";
try {
response.setContentType("text/csv");
String disposition = "attachment; fileName="+fileName;
response.setHeader("Content-Disposition", disposition);
response.setCharacterEncoding("UTF-8");
out = response.getOutputStream();
int length = fileData.length;
response.setContentLength(length);
out.write(fileData);
out.flush();
out.close();
} catch (Exception e) {
throw e;
} finally {
try {
if (out != null)
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
讓我們看看一些代碼 – Cruncher