[英]How to read a excel CSV file (comma separated value) in Java Eclipse?
[英]how can I parse CSV(excel,not separated by comma) file in Java ?
我有一個CSV文件(excel),其中包含數據,我需要使用java解析數據。 這些文件中的數據未使用逗號分隔,CSV文件具有寫入所有數據的列數和行數(每個單元格都有數據)。 我需要遍歷所有文件,直到到達每個文件的EOF(文件結尾)並解析數據。 文件中還包含空行,因此空行不是停止解析的條件,我認為只有EOF會表明我已經到達特定文件的末尾。
非常感謝。
您可以使用opencsv解析excel CSV。 我自己使用了此功能,您需要做的只是在';'上進行拆分。 空單元格也將被解析。
您可以在這里找到信息: http : //opencsv.sourceforge.net/
要解析excelCSV,您可以執行以下操作:
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), ';');
除了其他建議,我還將提供Jackson CSV模塊 。 Jackson具有非常強大的數據綁定功能,並且CSV模塊允許以CSV格式進行讀/寫,以替代JSON(或XML,YAML和其他受支持的格式)。 因此,除了強大的CSV-to / from-POJO綁定之外,您還可以在其他數據格式之間進行轉換。
請具有一個流對象以讀取CSV文件。
FileInputStream fis = new FileInputStream("FileName.CSV");
BufferedInputStream bis =新的BufferedInputStream(fis); InputStreamReader isr =新的InputStreamReader(bis);
讀取inputstream對象並將文件存儲在String對象中。
然后,使用StringTokenizer,以[[逗號]作為分隔符->,您將獲得令牌。請操縱令牌以獲取值。
String str = "This is String , split by StringTokenizer, created by mkyong";
StringTokenizer st =新的StringTokenizer(str);
System.out.println("---- Split by space ------");
while (st.hasMoreElements()) {
System.out.println(st.nextElement());
}
System.out.println("---- Split by comma ',' ------");
StringTokenizer st2 = new StringTokenizer(str, ",");
while (st2.hasMoreElements()) {
System.out.println(st2.nextElement());
}
謝謝,
帕萬
假設您有一個csv fileContent字符串形式:
String fileContent;
通常,將CSV fileContent解析為List>。
final List<String> rows = new ArrayList<String>(Lists.newArraysList(fileContent.split("[\\r\\n]+")));
將文件拆分為行列表。 然后使用OpenCSV的CSVParser並將逗號分隔的行解析為List
final CSVParser parser = new CSVParser();
final List<List<String>> csvDetails = new ArrayList<List<String>>();
rows.forEach(t -> {
try {
csvDetails.add(Lists.newArrayList(parser.parseLine(t)));
} catch (Exception e) {
throw new RunTimeException("Exception occurred while parsing the data");
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.