中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中怎么實現CSV文件導入導出功能

發布時間:2021-08-12 17:47:45 來源:億速云 閱讀:138 作者:Leah 欄目:編程語言

java中怎么實現CSV文件導入導出功能,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

導入部分

導入的時候基于Ajax請求,js代碼如下:

function importIpMac(upload) { var importTextInfo = document.getElementById("importTextInfo"); importTextInfo.value=""; $.ajaxFileUpload({   url: ctx + "/ipmac/importIpMac", type: 'post', secureuri: false,  // 一般設置為false fileElementId: 'upload',  // 上傳文件的id、name屬性名 dataType: 'text',  // 返回值類型,一般設置為json、application/json   success: function(data, status){   getIpMacBase();   },   error: function(data, status, e){   alert('請求異常!');   } });}

Java代碼控制層:

/** * 導入 */ @ResponseBody @RequestMapping(value = "/importIpMac", method = RequestMethod.POST, headers = { "content-type=multipart/form-data" }) public int importIpMac(HttpServletRequest request,  HttpServletResponse response,  @RequestParam(value = "upload") MultipartFile[] buildInfo)  throws ServletException, IOException {  // 得到上傳文件的保存目錄,將上傳的文件存放于WEB-INF目錄下,不允許外界直接訪問,保證上傳文件的安全 String savePath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload"); savePath = savePath.replace("file:", ""); // 去掉file: File file1 = new File(savePath); // 判斷上傳文件的保存目錄是否存在 if (!file1.exists() && !file1.isDirectory()) {  log.info(savePath + "目錄不存在,需要創建");  file1.mkdir(); } // 刪除此路徑下的所有文件以及文件夾 delAllFile(savePath);  try {  InputStream is = buildInfo[0].getInputStream();// 多文件也適用,我這里就一個文件  byte[] b = new byte[(int) buildInfo[0].getSize()];  int read = 0;  int i = 0;  while ((read = is.read()) != -1) {  b[i] = (byte) read;  i++;  }  is.close();  String filePath = savePath + "/" + "temp" + "_" + buildInfo[0].getOriginalFilename();  log.info("臨時文件保存路徑:" + savePath + "/" + "temp" + "_" + buildInfo[0].getOriginalFilename());  OutputStream os = new FileOutputStream(new File(savePath + "/" + "temp" + "_" + buildInfo[0].getOriginalFilename()));// 文件原名,如a.txt  os.write(b);  os.flush();  os.close();  topologyIpMacPortRealService.importIpMac(filePath); } catch (Exception e) {  if (log.isDebugEnabled())  log.debug("系統異常", e); }  return 1; }

Java代碼實現層:

public int importIpMac(String filePath) throws Exception { // List<String> dataList=CSVUtils.importCsv(new File("/Users/wjm/Desktop/testexcel.csv")); List<String> dataList = CSVUtils.importCsv(new File(filePath)); if (dataList != null && !dataList.isEmpty()) {  for (int i = 1; i < dataList.size(); i++) {  String data = dataList.get(i);  SiTopologyIpMacPortBase base = new SiTopologyIpMacPortBase();  String[] source = data.split(",");  if (source[0] != "") {   base.setId(source[0]);   base.setMac(source[1]);   base.setIp(source[2]);   base.setUpIp(source[3]);   base.setUpName(source[4]);   base.setUpIndex(source[5]);   base.setModifyTime(source[6]);    siTopologyIpMacPortBaseDao.insert(base);  }  } } return 1; }

其中CSVUtils類:

package com.one.si.toimpl.common.utils; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.OutputStreamWriter;import java.util.ArrayList;import java.util.List; /**   * CSV操作(導出和導入) * * @author wjm * @version 1.0 Nov 24, 2015 4:30:58 PM   */public class CSVUtils { <span > </span>/**   * 導出   *    * @param file csv文件(路徑+文件名),csv文件不存在會自動創建   * @param dataList 數據   * @return   */  public static boolean exportCsv(File file, List<String> dataList){    boolean isSucess=false;        FileOutputStream out=null;    OutputStreamWriter osw=null;    BufferedWriter bw=null;    try {//     OutputStreamWriter in_=new OutputStreamWriter(new FileOutputStream("文件名"), "gbk");      out = new FileOutputStream(file);      osw = new OutputStreamWriter(out, "gbk");      bw =new BufferedWriter(osw);      if(dataList!=null && !dataList.isEmpty()){        for(String data : dataList){          bw.append(data).append("\r");        }      }      isSucess=true;    } catch (Exception e) {      isSucess=false;    }finally{      if(bw!=null){        try {          bw.close();          bw=null;        } catch (IOException e) {          e.printStackTrace();        }       }      if(osw!=null){        try {          osw.close();          osw=null;        } catch (IOException e) {          e.printStackTrace();        }       }      if(out!=null){        try {          out.close();          out=null;        } catch (IOException e) {          e.printStackTrace();        }       }    }        return isSucess;  }    /**   * 導入   *    * @param file csv文件(路徑+文件)   * @return   */  public static List<String> importCsv(File file){    List<String> dataList=new ArrayList<String>();        BufferedReader br=null;    try {       br = new BufferedReader(new FileReader(file));      String line = "";       while ((line = br.readLine()) != null) {         dataList.add(line);      }    }catch (Exception e) {    }finally{      if(br!=null){        try {          br.close();          br=null;        } catch (IOException e) {          e.printStackTrace();        }      }    }     return dataList;  }}

導出部分

js部分:

/* * 導出基準表中的數據 */function exportIpMac() { window.open("exportIpMac.do");}

Java代碼控制層:

/** * 導出的基準表信息 */ @ResponseBody @RequestMapping("/exportIpMac") public String exportIpMac(HttpServletRequest request, HttpServletResponse response) throws Exception { List<String> dataList = topologyIpMacPortRealService.exportIpMac(); response.setCharacterEncoding("GBK"); SimpleDateFormat dfs = new SimpleDateFormat("yyyyMMddHHmmss");// 設置日期格式 Date time = new Date(); String tStamp = dfs.format(time); String filename = "IpMacPortExport"+tStamp + ".csv"; response.setHeader("contentType", "text/html; charset=GBK"); response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", "attachment; filename="+filename); String cp=request.getSession().getServletContext().getRealPath("/"); String path = cp+"download/"+filename; File file = new File(path); BufferedInputStream bis = null; BufferedOutputStream out = null; FileWriterWithEncoding fwwe =new FileWriterWithEncoding(file,"GBK"); BufferedWriter bw = new BufferedWriter(fwwe); if(dataList!=null && !dataList.isEmpty()){      for(String data : dataList){        bw.write(data);        bw.write("\n");      }    } bw.close(); fwwe.close(); try {  bis = new BufferedInputStream(new FileInputStream(file));  out = new BufferedOutputStream(response.getOutputStream());  byte[] buff = new byte[2048];  while (true) {   int bytesRead;   if (-1 == (bytesRead = bis.read(buff, 0, buff.length))){   break;   }   out.write(buff, 0, bytesRead);  }  file.deleteOnExit(); } catch (IOException e) {  throw e; } finally{  try {  if(bis != null){   bis.close();  }  if(out != null){   out.flush();   out.close();  }  }  catch (IOException e) {  throw e;  } } delAllFile(cp+"download/"); return null;  }

Java代碼實現層:

public List<String> exportIpMac() throws Exception { List<String> dataList = new ArrayList<String>(); try {  List<SiTopologyIpMacPortReal> list = siTopologyIpMacPortRealdao.selectAllData();  dataList.add("ID,地址,IP地址,設備,設備名稱,端口,更新時間");  for (int i = 0; i < list.size(); i++) {  dataList.add(list.get(i).getId() + "," + list.get(i).getMac()   + "," + list.get(i).getIp() + ","   + list.get(i).getUpIp() + ","   + list.get(i).getUpName() + ","   + list.get(i).getUpIfIndex() + ","   + list.get(i).getModifyTime());  } } catch (Exception e) {  e.printStackTrace(); } return dataList; }

關于java中怎么實現CSV文件導入導出功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永新县| 潮安县| 遵义县| 望奎县| 龙游县| 南丰县| 缙云县| 高邑县| 石渠县| 佛冈县| 尚志市| 应用必备| 尖扎县| 瓮安县| 梨树县| 潼南县| 台南市| 巴青县| 石台县| 祁阳县| 宁陕县| 金秀| 滦平县| 和林格尔县| 临高县| 安陆市| 荣成市| 丹江口市| 新乡县| 襄樊市| 莱阳市| 江阴市| 神池县| 永仁县| 黄梅县| 宣武区| 尉犁县| 郯城县| 沾益县| 津南区| 南京市|