首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中导出为CSV/Excel

在Java中导出为CSV/Excel
EN

Stack Overflow用户
提问于 2011-08-24 23:31:05
回答 4查看 26.2K关注 0票数 6

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

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

代码语言:javascript
复制
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) {
    }
}
EN

回答 4

Stack Overflow用户

发布于 2011-08-24 23:40:13

为此,我建议使用像opencsv这样的框架。它还为你做转义和引用。

票数 8
EN

Stack Overflow用户

发布于 2011-08-24 23:55:42

如果你没有得到错误,检查你的代码所在的目录。如果没有指定的路径,您的文件将保存在该路径中。

编辑:由于文件正在保存,并且您希望它自动打开,因此请使用

代码语言:javascript
复制
Runtime.getRuntime().exec("results.csv"); 

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

代码语言:javascript
复制
Runtime.getRuntime().exec("open results.csv"); 

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

票数 1
EN

Stack Overflow用户

发布于 2014-06-11 11:21:21

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7178145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档