| Refresh | Home EGTry.com

read excel style cvs file


input: 3 columns cvs Book1.csv

"Number ""1""",8/15/2011,"line1
line2
line3"
"Smith, John",8/16/2011,"line A
line B
line C"


package egtry.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVStrategy;

public class ExcelCSVReader {

	public static void main(String[] args) throws Exception {
		InputStream in=ExcelCSVReader.class.getResourceAsStream("Book1.csv");
		InputStreamReader inr=new InputStreamReader(in);
		CSVParser parser=new CSVParser(inr, CSVStrategy.EXCEL_STRATEGY);
		String[] row=null;
		while( (row=parser.getLine()) !=null) {
			for(int i=0; i<row.length; i++) {
				System.out.println(row[i]);
			}
			System.out.println();
		}
		
	}
	
	public static String getContent(String resourceName) throws IOException{
		InputStream in = ExcelCSVReader.class.getResourceAsStream(resourceName);
		BufferedReader reader=new BufferedReader(new InputStreamReader(in));
		StringBuilder builder=new StringBuilder();
		String line=null;
		while( (line=reader.readLine()) !=null) {
			builder.append(line+"\n");
		}
		in.close();
		return builder.toString();
	}
	
}


CSVParser.java source

output

Number "1"
8/15/2011
line1
line2
line3

Smith, John
8/16/2011
line A
line B
line C