簡體   English   中英

使用 CSVWriter 將列表寫入 CSV 文件的問題

[英]Issue with writing a List into CSV file using CSVWriter

我有以下方法使用 CSVWriter 將列表寫入 CSV 文件。 不幸的是,當我在 Excel 中打開它時,它沒有用逗號分隔它們,這使它們變得凌亂。 我該如何修改它?

   private void generateCSV(List<String> dataset) throws IOException {
        CSVWriter writer = null;
        JFileChooser chooser = new JFileChooser();
        chooser.setAcceptAllFileFilterUsed(true);
        if (chooser.showSaveDialog(chooser) == JFileChooser.APPROVE_OPTION) {
            File f = chooser.getSelectedFile();
            String file_name = f.toString();
            if (!(file_name.endsWith(".csv"))) {
                file_name += ".csv";
            }
            writer = new CSVWriter(new FileWriter(f));
            for(int i=0; i< dataset.size(); i++){
                String[] str = new String[] {dataset.get(i)};
                writer.writeNext(str);
            }

        } else {
            return;
        }
        writer.close();
    }

您在 for 循環中為dataset上的每個元素創建一個String[] ,然后使用writeNext()每行寫入一個元素。 所以它們不是逗號分隔的,因為每行只有一個元素,在每行末尾使用行分隔符。

我認為這就是你想要的。 我對嗎?

private void generateCSV(List<String> dataset) throws IOException {
    CSVWriter writer = null;
    JFileChooser chooser = new JFileChooser();
    chooser.setAcceptAllFileFilterUsed(true);
    if (chooser.showSaveDialog(chooser) == JFileChooser.APPROVE_OPTION) {
        File f = chooser.getSelectedFile();
        String file_name = f.toString();
        if (!(file_name.endsWith(".csv"))) {
            file_name += ".csv";
        }
        writer = new CSVWriter(new FileWriter(f));
        String[] str = new String[dataset.size()];
        for (int i = 0; i < dataset.size(); i++) {
            str[i] = dataset.get(i);
        }
        writer.writeNext(str);

    } else {
        return;
    }
    writer.close();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM