国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java生成CSV文件實例詳解

2019-11-26 15:28:21
字體:
來源:轉載
供稿:網友

本文實例主要講述了Java生成CSV文件的方法,具體實現步驟如下:

1、新建CSVUtils.java文件:

package com.saicfc.pmpf.internal.manage.utils;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.URLEncoder;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletResponse;import org.apache.commons.beanutils.BeanUtils;/** * 文件操作 */public class CSVUtils {  /**   * 生成為CVS文件    * @param exportData   *       源數據List   * @param map   *       csv文件的列表頭map   * @param outPutPath   *       文件路徑   * @param fileName   *       文件名稱   * @return   */  @SuppressWarnings("rawtypes")  public static File createCSVFile(List exportData, LinkedHashMap map, String outPutPath,                   String fileName) {    File csvFile = null;    BufferedWriter csvFileOutputStream = null;    try {      File file = new File(outPutPath);      if (!file.exists()) {        file.mkdir();      }      //定義文件名格式并創建      csvFile = File.createTempFile(fileName, ".csv", new File(outPutPath));      System.out.println("csvFile:" + csvFile);      // UTF-8使正確讀取分隔符","       csvFileOutputStream = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(        csvFile), "UTF-8"), 1024);      System.out.println("csvFileOutputStream:" + csvFileOutputStream);      // 寫入文件頭部       for (Iterator propertyIterator = map.entrySet().iterator(); propertyIterator.hasNext();) {        java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator.next();        csvFileOutputStream          .write(""" + (String) propertyEntry.getValue() != null ? (String) propertyEntry            .getValue() : "" + """);        if (propertyIterator.hasNext()) {          csvFileOutputStream.write(",");        }      }      csvFileOutputStream.newLine();      // 寫入文件內容       for (Iterator iterator = exportData.iterator(); iterator.hasNext();) {        Object row = (Object) iterator.next();        for (Iterator propertyIterator = map.entrySet().iterator(); propertyIterator          .hasNext();) {          java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator            .next();          csvFileOutputStream.write((String) BeanUtils.getProperty(row,            (String) propertyEntry.getKey()));          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;  }  /**   * 下載文件   * @param response   * @param csvFilePath   *       文件路徑   * @param fileName   *       文件名稱   * @throws IOException   */  public static void exportFile(HttpServletResponse response, String csvFilePath, String fileName)                                                  throws IOException {    response.setContentType("application/csv;charset=UTF-8");    response.setHeader("Content-Disposition",      "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));    InputStream in = null;    try {      in = new FileInputStream(csvFilePath);      int len = 0;      byte[] buffer = new byte[1024];      response.setCharacterEncoding("UTF-8");      OutputStream out = response.getOutputStream();      while ((len = in.read(buffer)) > 0) {        out.write(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });        out.write(buffer, 0, len);      }    } catch (FileNotFoundException e) {      System.out.println(e);    } finally {      if (in != null) {        try {          in.close();        } catch (Exception e) {          throw new RuntimeException(e);        }      }    }  }  /**   * 刪除該目錄filePath下的所有文件   * @param filePath   *      文件目錄路徑   */  public static void deleteFiles(String filePath) {    File file = new File(filePath);    if (file.exists()) {      File[] files = file.listFiles();      for (int i = 0; i < files.length; i++) {        if (files[i].isFile()) {          files[i].delete();        }      }    }  }  /**   * 刪除單個文件   * @param filePath   *     文件目錄路徑   * @param fileName   *     文件名稱   */  public static void deleteFile(String filePath, String fileName) {    File file = new File(filePath);    if (file.exists()) {      File[] files = file.listFiles();      for (int i = 0; i < files.length; i++) {        if (files[i].isFile()) {          if (files[i].getName().equals(fileName)) {            files[i].delete();            return;          }        }      }    }  }  /**   * 測試數據   * @param args   */  @SuppressWarnings({ "rawtypes", "unchecked" })  public static void main(String[] args) {    List exportData = new ArrayList<Map>();    Map row1 = new LinkedHashMap<String, String>();    row1.put("1", "11");    row1.put("2", "12");    row1.put("3", "13");    row1.put("4", "14");    exportData.add(row1);    row1 = new LinkedHashMap<String, String>();    row1.put("1", "21");    row1.put("2", "22");    row1.put("3", "23");    row1.put("4", "24");    exportData.add(row1);    LinkedHashMap map = new LinkedHashMap();    map.put("1", "第一列");    map.put("2", "第二列");    map.put("3", "第三列");    map.put("4", "第四列");    String path = "c:/export/";    String fileName = "文件導出";    File file = CSVUtils.createCSVFile(exportData, map, path, fileName);    String fileName2 = file.getName();    System.out.println("文件名稱:" + fileName2);  }}

2、調用createCSVFile方法生成CSV文件

String name = "銀行退款數據";List exportData = new ArrayList();LinkedHashMap datamMap = null;for (Iterator iterator = refundList.iterator(); iterator.hasNext();) {   HashMap map = (HashMap) iterator.next();   datamMap = new LinkedHashMap();   datamMap.put("1", map.get("merOrderId"));   datamMap.put("2",DateUtil.convertDateToString("yyyyMMdd", (Date) map.get("orderTime")));   BigDecimal amount = (BigDecimal) map.get("amount");   String amountString = amount.divide(new BigDecimal(10)).toPlainString();   datamMap.put("3", amountString);   datamMap.put("4", map.get("remark") != null ? map.get("remark") : "");   exportData.add(datamMap);} LinkedHashMap map = new LinkedHashMap(); map.put("1", "訂單號"); map.put("2", "支付日期"); map.put("3", "退貨現金金額(整數金額 單位:分)"); map.put("4", "退貨原因"); File file = CSVUtils.createCSVFile(exportData, map, filePath, name);//生成CSV文件 fileName = file.getName(); CSVUtils.exportFile(response, filePath + fileName, fileName);//下載生成的CSV文件
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿城市| 伊宁县| 开平市| 桑植县| 正镶白旗| 司法| 依安县| 山丹县| 广南县| 合阳县| 裕民县| 淳安县| 陵川县| 北票市| 灵丘县| 灌云县| 绵阳市| 南汇区| 太白县| 上饶县| 遂平县| 会理县| 三亚市| 上虞市| 巴林右旗| 伊金霍洛旗| 隆德县| 大洼县| 延津县| 张掖市| 瓦房店市| 松溪县| 新津县| 新乡市| 瑞昌市| 汉寿县| 郎溪县| 积石山| 蕲春县| 绥德县| 长宁区|