![](/img/trans.png)
[英]Writing data from DB to CSV using CSVWriter giving junk values in CSV file opened in Excel
[英]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.