一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java生成CSV文件實例詳解

Java生成CSV文件實例詳解

2019-11-25 14:19shichen2014 JAVA教程

這篇文章主要介紹了Java生成CSV文件的方法,很實用的功能,需要的朋友可以參考下

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

1、新建CSVUtils.java文件:

  1. package com.saicfc.pmpf.internal.manage.utils; 
  2.   
  3. import java.io.BufferedWriter; 
  4. import java.io.File; 
  5. import java.io.FileInputStream; 
  6. import java.io.FileNotFoundException; 
  7. import java.io.FileOutputStream; 
  8. import java.io.IOException; 
  9. import java.io.InputStream; 
  10. import java.io.OutputStream; 
  11. import java.io.OutputStreamWriter; 
  12. import java.net.URLEncoder; 
  13. import java.util.ArrayList; 
  14. import java.util.Iterator; 
  15. import java.util.LinkedHashMap; 
  16. import java.util.List; 
  17. import java.util.Map; 
  18.   
  19. import javax.servlet.http.HttpServletResponse; 
  20.   
  21. import org.apache.commons.beanutils.BeanUtils; 
  22.   
  23. /** 
  24.  * 文件操作 
  25.  */ 
  26. public class CSVUtils { 
  27.   
  28.   /** 
  29.    * 生成為CVS文件  
  30.    * @param exportData 
  31.    *       源數據List 
  32.    * @param map 
  33.    *       csv文件的列表頭map 
  34.    * @param outPutPath 
  35.    *       文件路徑 
  36.    * @param fileName 
  37.    *       文件名稱 
  38.    * @return 
  39.    */ 
  40.   @SuppressWarnings("rawtypes"
  41.   public static File createCSVFile(List exportData, LinkedHashMap map, String outPutPath, 
  42.                    String fileName) { 
  43.     File csvFile = null
  44.     BufferedWriter csvFileOutputStream = null
  45.     try { 
  46.       File file = new File(outPutPath); 
  47.       if (!file.exists()) { 
  48.         file.mkdir(); 
  49.       } 
  50.       //定義文件名格式并創建 
  51.       csvFile = File.createTempFile(fileName, ".csv"new File(outPutPath)); 
  52.       System.out.println("csvFile:" + csvFile); 
  53.       // UTF-8使正確讀取分隔符","  
  54.       csvFileOutputStream = new BufferedWriter(new OutputStreamWriter(new FileOutputStream( 
  55.         csvFile), "UTF-8"), 1024); 
  56.       System.out.println("csvFileOutputStream:" + csvFileOutputStream); 
  57.       // 寫入文件頭部  
  58.       for (Iterator propertyIterator = map.entrySet().iterator(); propertyIterator.hasNext();) { 
  59.         java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator.next(); 
  60.         csvFileOutputStream 
  61.           .write(""" + (String) propertyEntry.getValue() != null ? (String) propertyEntry 
  62.             .getValue() : "" + """); 
  63.         if (propertyIterator.hasNext()) { 
  64.           csvFileOutputStream.write(","); 
  65.         } 
  66.       } 
  67.       csvFileOutputStream.newLine(); 
  68.       // 寫入文件內容  
  69.       for (Iterator iterator = exportData.iterator(); iterator.hasNext();) { 
  70.         Object row = (Object) iterator.next(); 
  71.         for (Iterator propertyIterator = map.entrySet().iterator(); propertyIterator 
  72.           .hasNext();) { 
  73.           java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator 
  74.             .next(); 
  75.           csvFileOutputStream.write((String) BeanUtils.getProperty(row, 
  76.             (String) propertyEntry.getKey())); 
  77.           if (propertyIterator.hasNext()) { 
  78.             csvFileOutputStream.write(","); 
  79.           } 
  80.         } 
  81.         if (iterator.hasNext()) { 
  82.           csvFileOutputStream.newLine(); 
  83.         } 
  84.       } 
  85.       csvFileOutputStream.flush(); 
  86.     } catch (Exception e) { 
  87.       e.printStackTrace(); 
  88.     } finally { 
  89.       try { 
  90.         csvFileOutputStream.close(); 
  91.       } catch (IOException e) { 
  92.         e.printStackTrace(); 
  93.       } 
  94.     } 
  95.     return csvFile; 
  96.   } 
  97.   
  98.   /** 
  99.    * 下載文件 
  100.    * @param response 
  101.    * @param csvFilePath 
  102.    *       文件路徑 
  103.    * @param fileName 
  104.    *       文件名稱 
  105.    * @throws IOException 
  106.    */ 
  107.   public static void exportFile(HttpServletResponse response, String csvFilePath, String fileName) 
  108.                                                   throws IOException { 
  109.     response.setContentType("application/csv;charset=UTF-8"); 
  110.     response.setHeader("Content-Disposition"
  111.       "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); 
  112.   
  113.     InputStream in = null
  114.     try { 
  115.       in = new FileInputStream(csvFilePath); 
  116.       int len = 0; 
  117.       byte[] buffer = new byte[1024]; 
  118.       response.setCharacterEncoding("UTF-8"); 
  119.       OutputStream out = response.getOutputStream(); 
  120.       while ((len = in.read(buffer)) > 0) { 
  121.         out.write(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF }); 
  122.         out.write(buffer, 0, len); 
  123.       } 
  124.     } catch (FileNotFoundException e) { 
  125.       System.out.println(e); 
  126.     } finally { 
  127.       if (in != null) { 
  128.         try { 
  129.           in.close(); 
  130.         } catch (Exception e) { 
  131.           throw new RuntimeException(e); 
  132.         } 
  133.       } 
  134.     } 
  135.   } 
  136.   
  137.   /** 
  138.    * 刪除該目錄filePath下的所有文件 
  139.    * @param filePath 
  140.    *      文件目錄路徑 
  141.    */ 
  142.   public static void deleteFiles(String filePath) { 
  143.     File file = new File(filePath); 
  144.     if (file.exists()) { 
  145.       File[] files = file.listFiles(); 
  146.       for (int i = 0; i < files.length; i++) { 
  147.         if (files[i].isFile()) { 
  148.           files[i].delete(); 
  149.         } 
  150.       } 
  151.     } 
  152.   } 
  153.   
  154.   /** 
  155.    * 刪除單個文件 
  156.    * @param filePath 
  157.    *     文件目錄路徑 
  158.    * @param fileName 
  159.    *     文件名稱 
  160.    */ 
  161.   public static void deleteFile(String filePath, String fileName) { 
  162.     File file = new File(filePath); 
  163.     if (file.exists()) { 
  164.       File[] files = file.listFiles(); 
  165.       for (int i = 0; i < files.length; i++) { 
  166.         if (files[i].isFile()) { 
  167.           if (files[i].getName().equals(fileName)) { 
  168.             files[i].delete(); 
  169.             return
  170.           } 
  171.         } 
  172.       } 
  173.     } 
  174.   } 
  175.   
  176.   /** 
  177.    * 測試數據 
  178.    * @param args 
  179.    */ 
  180.   @SuppressWarnings({ "rawtypes""unchecked" }) 
  181.   public static void main(String[] args) { 
  182.     List exportData = new ArrayList<Map>(); 
  183.     Map row1 = new LinkedHashMap<String, String>(); 
  184.     row1.put("1""11"); 
  185.     row1.put("2""12"); 
  186.     row1.put("3""13"); 
  187.     row1.put("4""14"); 
  188.     exportData.add(row1); 
  189.     row1 = new LinkedHashMap<String, String>(); 
  190.     row1.put("1""21"); 
  191.     row1.put("2""22"); 
  192.     row1.put("3""23"); 
  193.     row1.put("4""24"); 
  194.     exportData.add(row1); 
  195.     LinkedHashMap map = new LinkedHashMap(); 
  196.     map.put("1""第一列"); 
  197.     map.put("2""第二列"); 
  198.     map.put("3""第三列"); 
  199.     map.put("4""第四列"); 
  200.   
  201.     String path = "c:/export/"
  202.     String fileName = "文件導出"
  203.     File file = CSVUtils.createCSVFile(exportData, map, path, fileName); 
  204.     String fileName2 = file.getName(); 
  205.     System.out.println("文件名稱:" + fileName2); 
  206.   } 

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

  1. String name = "銀行退款數據"
  2. List exportData = new ArrayList(); 
  3. LinkedHashMap datamMap = null
  4. for (Iterator iterator = refundList.iterator(); iterator.hasNext();) { 
  5.    HashMap map = (HashMap) iterator.next(); 
  6.    datamMap = new LinkedHashMap(); 
  7.    datamMap.put("1", map.get("merOrderId")); 
  8.    datamMap.put("2",DateUtil.convertDateToString("yyyyMMdd", (Date) map.get("orderTime"))); 
  9.    BigDecimal amount = (BigDecimal) map.get("amount"); 
  10.    String amountString = amount.divide(new BigDecimal(10)).toPlainString(); 
  11.    datamMap.put("3", amountString); 
  12.    datamMap.put("4", map.get("remark") != null ? map.get("remark") : ""); 
  13.    exportData.add(datamMap); 
  14.  LinkedHashMap map = new LinkedHashMap(); 
  15.  map.put("1""訂單號"); 
  16.  map.put("2""支付日期"); 
  17.  map.put("3""退貨現金金額(整數金額 單位:分)"); 
  18.  map.put("4""退貨原因"); 
  19.  File file = CSVUtils.createCSVFile(exportData, map, filePath, name);//生成CSV文件 
  20.  fileName = file.getName(); 
  21.  CSVUtils.exportFile(response, filePath + fileName, fileName);//下載生成的CSV文件 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 毛片免费观看的视频 | 亚洲免费福利视频 | 四虎永久免费地址在线观看 | 美女啪啪国产 | 午夜影院0606免费 | 日韩欧美精品一区二区 | 免费午夜影片在线观看影院 | 2021最新国产成人精品免费 | 黑人粗长大战亚洲女 | 久久机热视频 这里只有精品首页 | 爽新片xxxxxxx| 青草草视频在线观看 | 把女的下面扒开添视频 | 91香蕉国产在线观看人员 | 波多野结衣在线中文字幕 | 国产欧美视频高清va在线观看 | 久久久精品免费视频 | 亚洲高清一区二区三区久久 | 无码欧美喷潮福利XXXX | 4455永久在线观免费看片 | 国产1区2区三区不卡 | 国产欧美日韩不卡一区二区三区 | 免费一级国产生活片 | 欧美爽妇| 亚洲精品www久久久久久久软件 | 白白国产永久免费视频 | 满城尽带黄金甲大胸片 | 亚洲国产精品婷婷久久久久 | 国产精品福利在线观看免费不卡 | 四虎影视在线永久免费观看 | 99久久综合| 免费激情小视频 | 边摸边吃奶边做爽gif动态图 | 男人的私人影院 | 91tv破解版不限次数 | 日本高清中文字幕一区二区三区 | 和岳m的小说 | 波多野结衣在线观看中文字幕 | 狠狠色婷婷狠狠狠亚洲综合 | 女人日男人 | 免费观看日本人成影片 |