2015-10-06 128 views
1

我正在從一個CSV.1文件寫入另一個CSV.2文件。但我只希望提取某些列,而不是從CSV.1文件到CSV.2文件的所有內容。有沒有辦法做到這一點?順便說一句,我使用Java來做到這一點。謝謝。只從一個CSV文件中提取某些列以寫入另一個CSV文件

+0

是的,你可以!使用'Apache POI' API,如需進一步信息,請查看此鏈接http://viralpatel.net/blogs/java-read-write-excel-file-apache-poi/ –

+1

正如其他人所建議的,最好使用第三方圖書館。如果內容包含分隔符,則解析csv並不重要。 –

回答

1

我會建議使用一些庫,如OpenCSV。 Pleasae看看這個文檔。

但是,如果你想用你的「自己的代碼」,你可以使用這樣的事情:

// Set your splitter, mostly "," or ";" 
String csvSplitter = ";" 
// A buffered reader on the input file 
BufferedReader br = new BufferedReader(new FileReader("CSV.1")); 
// A writer to the output file 
PrintWriter output = new PrintWriter("CSV.2", "UTF-8"); 
// Read line after line until EOF 
while ((line = br.readLine()) != null) { 
    // Split the current line into columns 
    String[] cols = line.split(csvSplitter); 
    // Only write the needed columns to the output file (eg. columns at index 4, 5 and 8) 
    output.println(cols[4] + csvSplitter + cols[5] + csvSplitter + cols[8]); 

}

0

你可以做到這一點在Java中,因爲當你閱讀在Java中的CSV文件,你一行一行地閱讀。 因此,您可以將每一行與您的CSV分隔符分隔。您需要爲這行添加一列逐列的內容。然後你跳過你不想要的列。 您對每一行重複一遍。

相關問題