您的位置:首页 > 其它

CSV文件生成工具类

2014-09-22 14:13 204 查看
package com.unicomutil;

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.Iterator;

import java.util.LinkedHashMap;

import java.util.List;

import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;

/**

 * @author chc

 * @version 创建时间:2014-7-18

 *  CSV文件生成工具类

 */

public class CSVUtils {

    public static File createCSVFile(List exportData, LinkedHashMap rowMapper,

            String outPutPath, String filename) {

        File csvFile = null;

        BufferedWriter csvFileOutputStream = null;

        try {

            csvFile = new File(outPutPath + filename + ".csv");

            // csvFile.getParentFile().mkdir();

            File parent = csvFile.getParentFile();

            if (parent != null && !parent.exists()) {

                parent.mkdirs();

            }

            csvFile.createNewFile();

            // GB2312使正确读取分隔符","

            csvFileOutputStream = new BufferedWriter(new OutputStreamWriter(

                    new FileOutputStream(csvFile), "GB2312"), 1024);

            // 写入文件头部

            for (Iterator propertyIterator = rowMapper.entrySet().iterator(); propertyIterator

                    .hasNext();) {

                java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator

                        .next();

                csvFileOutputStream.write("\""

                        + propertyEntry.getValue().toString() + "\"");

                if (propertyIterator.hasNext()) {

                    csvFileOutputStream.write(",");

                }

            }

            csvFileOutputStream.newLine();

           

            // 写入文件内容

            for (Iterator iterator = exportData.iterator(); iterator.hasNext();) {  

                Object row = (Object) iterator.next();  

                System.out.println(row);

                Map cellMap = (Map)row;

                for (Iterator propertyIterator = cellMap.entrySet().iterator(); propertyIterator.hasNext();) {  

                    java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator.next();  

                    System.out.println( BeanUtils.getProperty(row, propertyEntry.getKey().toString()));

                    csvFileOutputStream.write("\""  

                            +  propertyEntry.getValue().toString() + "\"");  

                   if (propertyIterator.hasNext()) {  

                       csvFileOutputStream.write(",");  

                    }  

               }  

                if (iterator.hasNext()) {  

                   csvFileOutputStream.newLine();  

                }  

           }  

            csvFileOutputStream.flush();  

        } catch (Exception e) {  

           e.printStackTrace();  

        } finally {  

           try {  

                csvFileOutputStream.close();  

            } catch (IOException e) {  

               e.printStackTrace();

           }  

       }  

        return csvFile;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  csv