javacsv是国外开发的一个比较好的操作csv文件的API,这里简单讲一下用法。
先下载javacsv2.0.zip的文件,解压后,把javacsv.jar 添加到项目中。
下面是官方网址:
http://sourceforge.net/projects/javacsv/files/
/**
* 读取CSV文件
*/
public void readeCsv(){
try {
ArrayList<String[]> csvList = new ArrayList<String[]>(); //用来保存数据
String csvFilePath = "c:/test.csv";
CsvReader reader = new CsvReader(csvFilePath,',',Charset.forName("SJIS")); //一般用这编码读就可以了
reader.readHeaders(); // 跳过表头 如果需要表头的话,不要写这句。
while(reader.readRecord()){ //逐行读入除表头的数据
csvList.add(reader.getValues());
}
reader.close();
for(int row=0;row<csvList.size();row++){
String cell = csvList.get(row)[0]; //取得第row行第所有列的数据
(只有一条数据,包含了所有列 如:1\taa\tbb)
System.out.println(cell);
}
}catch(Exception ex){
System.out.println(ex);
}
}
/**
* 写入CSV文件
*/
public void writeCsv(){
try {
String csvFilePath = "c:/test.csv";
CsvWriter wr =new CsvWriter(csvFilePath,',',Charset.forName("SJIS"));
String[] contents = {"aaaaa","bbbbb","cccccc","ddddddddd"};
wr.writeRecord(contents);
wr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
注意:
1、
reader.readHeaders();
如果要连表头一起输出的话:
上面这句话可以去掉
while(reader.readHeaders()){
csvList.add(reader.getHeaders());
}
用这种方法,可以连表头和表体的数据都一起输出
2、如果要单独输出表头
reader.readHeaders()
这句不能去掉,然后
String[] headers = reader.getHeaders();
for(int i=0;i<headers.length;i++){
System.out.println(headers[i]);
}
System.out.println("************************************");
详细网址请参考:
http://www.cnitblog.com/rd416/archive/2010/07/08/47248.html