在Java中导出为CSV / Excel

我试图导出数据到一个CSV文件通过Java,我有一些代码做到这一点,但似乎并没有输出的CSV文件。 有人能告诉我什么是错的吗? 我想要做的不是将文件保存在某个地方,而是希望将其直接导出到用户。

编辑:以防万一它不清楚,我不希望文件被保存在任何地方,但希望它会自动输出到用户,即他们点击导出,并获得“运行/保存results.csv”窗口,他们打开文件。 目前该文件正在保存,所以我知道该方法似乎工作,只是在我想要的相反的方式。

public static void writeToCSV(List<Map> objectList) { String CSV_SEPARATOR = ","; try { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("results.csv"), "UTF-8")); for (Map objectDetails : objectList) { StringBuffer oneLine = new StringBuffer(); Iterator it = objectDetails.values().iterator(); while (it.hasNext()) { Object value = it.next(); if(value !=null){ oneLine.append(value.toString()); } if (it.hasNext()) { oneLine.append(CSV_SEPARATOR); } } bw.write(oneLine.toString()); bw.newLine(); } bw.flush(); bw.close(); } catch (UnsupportedEncodingException e) { } catch (FileNotFoundException e) { } catch (IOException e) { } } 

我会build议使用opencsv这样的框架。 它也逃避和引用你。

如果您没有收到错误,请检查代码所在的目录。 没有一个特定的path,你的文件被保存在那里。

编辑:由于该文件正在保存,你想它自动打开,使用

 Runtime.getRuntime().exec("results.csv"); 

(对于Windows – 在csv文件的默认应用程序中打开csv文件)

 Runtime.getRuntime().exec("open results.csv"); 

(对于Mac – 在csv文件的默认应用程序中打开csv文件)

推荐HSSFWorkbook轻松读取和写入Excel文件。 http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html