java导出cvs文件

package testcvs;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;

/**
*
* CSV文件导出工具类
*/
public class CSVUtils {

       public static void main(String[] args) {

List<Object> list = new ArrayList();
list.add("标题1姓名");
list.add("标题2年龄");

List<Object> list3=new ArrayList<Object>();
list3.add("数据11");
list3.add("数据22");
List<List<Object>> dataList=new ArrayList<List<Object>>();
dataList.add(list3);

createCSVFile(list, dataList);
System.out.println("ok");
}

/**
* CSV文件生成方法
*
* @param head
* @param dataList
* @param outPutPath
* @param filename
* @return
*/
public static File createCSVFile(List<Object> head,
List<List<Object>> dataList) {

File csvFile = null;
BufferedWriter csvWtriter = null;
try {
csvFile = new File("d:\\ExportCVSFile.csv");//d:\\ExportCVSFile.csv代表导出文件的物理位置
File parent = csvFile.getParentFile();//得到父目录
if (parent != null && !parent.exists()) {
parent.mkdirs();//创建文件夹
}
csvFile.createNewFile();//创建具体的文件

// GB2312使正确读取分隔符","
csvWtriter = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(csvFile), "GB2312"), 1024);
// 写入文件头部
writeRow(head, csvWtriter);

// 写入文件内容
for (List<Object> row : dataList) {
  writeRow(row, csvWtriter);
}
  csvWtriter.flush();

} catch (Exception e) {

  e.printStackTrace();
} finally {
try {
  csvWtriter.close();
} catch (IOException e) {
  e.printStackTrace();
}

}
return csvFile;
}

/**
* 写一行数据方法
*
* @param row
* @param csvWriter
* @throws IOException
*/
private static void writeRow(List<Object> row, BufferedWriter csvWriter)
throws IOException {
// 写入文件头部
for (Object data : row) {
  StringBuffer sb = new StringBuffer();

    //rowStr"标题1姓名",
    // rowStr"标题2年龄",
    // rowStr"数据11",
    // rowStr"数据22",

  String rowStr = sb.append("\"").append(data).append("\",").toString();//"+数据+"
  csvWriter.write(rowStr);
}
  csvWriter.newLine();//每次调用换一行
}
}

 

最终效果图:

posted @ 2015-09-16 00:06  流星雨—杰克  阅读(533)  评论(0编辑  收藏  举报