我正在尝试通过Java将数据导出到CSV文件,我有一些代码可以做到这一点,但它似乎没有输出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) {
}
}
发布于 2011-08-24 23:40:13
为此,我建议使用像opencsv这样的框架。它还为你做转义和引用。
发布于 2011-08-24 23:55:42
如果你没有得到错误,检查你的代码所在的目录。如果没有指定的路径,您的文件将保存在该路径中。
编辑:由于文件正在保存,并且您希望它自动打开,因此请使用
Runtime.getRuntime().exec("results.csv");
(对于Windows -在csv文件的默认应用程序中打开csv文件)
Runtime.getRuntime().exec("open results.csv");
(对于Mac -在csv文件的默认应用程序中打开csv文件)
发布于 2014-06-11 11:21:21
推荐使用HSSFWorkbook
轻松读写excel文件。http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html
https://stackoverflow.com/questions/7178145
复制相似问题