1. 程式人生 > >【JavaWeb】WEB下的excel批量匯入功能

【JavaWeb】WEB下的excel批量匯入功能

開發中使用Excel匯出功能實現的整個流程。使用框架ssm。

control層 importExcel+parseDataItem:

  1. @RequestMapping("importExcel.do")  
  2.   public String importExcel(@RequestParam MultipartFile uploadfile,   
  3.           HttpServletRequest request, HttpServletResponse response) {  
  4.       String fileName = uploadfile.getOriginalFilename();  
  5.       if (StringUtils.isEmpty(fileName)) {  
  6.           System.out.println("未上傳檔名為空");  
  7.       }  
  8.       String tempPath = request.getSession().getServletContext().getRealPath("/")  
  9.               + "upload";  
  10.       File dir = new File(tempPath);      
  11.       if (!tempPath.endsWith(File.separator)) {  
  12.           tempPath = tempPath + File.separator;  
  13.       }  
  14.       if (!dir.exists()) {  
  15.           dir.mkdirs();  
  16.       }  
  17.       System.out.println(tempPath);  
  18.       //製作路徑
  19.       String newFile = tempPath + fileName;  
  20.       File file = new File(newFile);          
  21.       try {  
  22.           FileCopyUtils.copy(uploadfile.getBytes(), file);  
  23.           //匯入excel中的內容
  24.           this.<span style="color:#ff0000;">parseDataItem</span>(newFile);  
  25.           System.out.println("成功匯入");  
  26.       } catch (IOException e) {  
  27.           e.printStackTrace();  
  28.       } finally {  
  29.           try {  
  30.               FileUtils.forceDelete(file);  
  31.           } catch (IOException e) {  
  32.               e.printStackTrace();  
  33.               return"uploadfail";  
  34.           }  
  35.       }  
  36.       return"uploadsuccess";  
  37.   }  
  38.   publicfinalboolean <span style="color:#ff0000;">parseDataItem</span>(String file){  
  39.      return ysdwAnimalService.<span style="color:#ff0000;">importExcel</span>(file);  
  40.   }  
ysdwAnimalService層 import 呼叫底層通用方法readExcel:
  1. @Transactional
  2.     publicboolean importExcel(String file) {  
  3.         finalint rowStart = 2;  
  4.         finalint cellStrart = 0;        
  5.         List<YsdwAnimal> list = new LinkedList<YsdwAnimal>();      
  6.         YsdwAnimal ysdwAnimal = null;  
  7.         try {  
  8.             List<Object> dataList = ReadExcleUtils.<span style="color:#ff0000;">readExcel</span>(file, new YsdwAnimalExcel(), rowStart, cellStrart);  
  9.             for (Object object : dataList) {  
  10.                YsdwAnimalExcel excel = (YsdwAnimalExcel) object;  
  11.                 ysdwAnimal = new YsdwAnimal();                 
  12.                 String uuid = CommonUtils.getUuid();  
  13.                 ysdwAnimal.setId(uuid);  
  14.                 ysdwAnimal.setAnimalname(excel.getAnimalname());  
  15.                 ysdwAnimal.setAnimalnumber(excel.getAnimalnumber());  
  16.                 ysdwAnimal.setAnimaltypes(excel.getAnimaltypes());  
  17.                 ysdwAnimal.setVegetationtypes(excel.getVegetationtypes());  
  18.                 ysdwAnimal.setJingdu(excel.getJingdu());  
  19.                 ysdwAnimal.setWeidu(excel.getWeidu());  
  20.                 ysdwAnimal.setPodu(excel.getPodu());  
  21.                 ysdwAnimal.setPowei(excel.getPowei());  
  22.                 ysdwAnimal.setPoxiang(excel.getPoxiang());  
  23.                 ysdwAnimal.setZuobiao(excel.getZuobiao());  
  24.                 ysdwAnimal.setHaiba(excel.getHaiba());  
  25.                 ysdwAnimal.setTianqi(excel.getTianqi());  
  26.                 ysdwAnimal.setJilusj(excel.getJilusj());  
  27.                 ysdwAnimal.setQita(excel.getQita());        
  28.                 ysdwAnimal.setDid(excel.getDid());  
  29.                 ysdwAnimal.setBaohdj(excel.getBaohdj());  
  30.                 list.add(ysdwAnimal);                
  31.             }             
  32.             //存庫
  33.             for (YsdwAnimal YsdwAnimal : list) {  
  34.                 YsdwAnimalMapper.saveOrUpdate(YsdwAnimal);  
  35.                 System.out.println("存庫");  
  36.             }  
  37.         } catch (IOException e) {  
  38.             e.printStackTrace();  
  39.             returnfalse;  
  40.         }  
  41.         returntrue;  
  42.     }  
底層通用方法readExcel
  1. /** 
  2.      * 讀取EXCLE2007的方法 
  3.      * @param filePath 檔名 
  4.      * @param obj 物件名 
  5.      * @param rowStart 起點行(從0開始) 
  6.      * @param cellStrart 起點列(從0開始) 
  7.      * @return 物件集合 
  8.      * @throws IOException 
  9.      */
  10.     @SuppressWarnings("rawtypes")  
  11.     publicstatic List<Object> readExcel(final String filePath, final Object obj, finalint rowStart, finalint cellStrart) throws IOException {  
  12.         List<Object> aList = null;  
  13.         final String extension = filePath.substring(filePath.lastIndexOf(".")+1, filePath.length());//擷取副檔名
  14.         final Class c = obj.getClass();//獲得類物件
  15.         <span style="color:#cc0000;">final Field[] filds = c.getDeclaredFields();//獲得該類中所有的屬性</span>
  16.         final File excelFile = new File(filePath);   
  17.         final InputStream is = new FileInputStream(excelFile);// 獲取檔案輸入流
  18.         if ("xlsx".equals(extension)) {//解析2007
  19. 相關推薦

    JavaWebWEBexcel批量匯入功能

    開發中使用Excel匯出功能實現的整個流程。使用框架ssm。 control層 importExcel+parseDataItem: @RequestMapping("importExcel.do")     public String im

    轉載QP02檢驗計劃批量匯入

    其他參考: https://archive.sap.com/discussions/thread/3430191 *&---------------------------------------------------------------------* *& PROGRAM

    JavaWebIDEA Tomcat執行servlet

    新建Module 建成後的目錄: 新建Servlet類 public class AServlet implements Servlet {    @Override    public void init(ServletConfig servlet

    web頁面新增使用excel表格批量匯入功能

    應用場景:註冊一批資料格式相同的賬號,可以通過頁面註冊一個個註冊,但當資料量大的時候,就比較費力了,而且效率海還低,所以通過整理出固定格式的excel表格,將資料填在表格內,通過在頁面匯入,後臺解析自動註冊。 前端使用頁面展示 html頁面程式碼 js邏輯程式碼  &n

    圖解Web前端實現類似Excel的電子表格

    在本文中,我將用圖解的方式用Wijmo(JavaScript庫)中的SpreadJS來一步一步實現網頁上的電子表格產品SpreadSheet(例如可構建Office 365 Excel產品、Google的線上SpreadSheet). 博文簡介: Wijmo控制元

    javaWeb第49天—— WEB實戰專案

    回顧: 註解: 格式: @interface 註解名{} jdk中三個註解 自定義註解: 註解屬性: 介面中的方法 型別:

    java多執行緒批量拆分List匯入資料庫

    一、前言       前兩天做了一個匯入的功能,匯入開始的時候非常慢,匯入2w條資料要1分多鐘,後來一點一點的優化,從直接把list懟進Mysql中,到分配把list匯入Mysql中,到多執行緒把list匯入Mysql中。時間是一點一點的變少了。非常的爽,最後

    javaWeb第51天—— WEB實戰專案三

    回顧: 分類資訊展示 包含 ajax .get(url,params,function(data),type);.get(url,params,function(data),type);.post(url,params,f

    物流系統——C#中Oracle批量匯入(一)

    前提     匯入資料量1W,因為在小編做這個xml匯入之前系統中已經有execl匯入了,小編也沒多想,就按照前人的封裝做了一版,數量不大的時候使用起來完全沒有毛病。     封裝在DbHelper中,執行多條SQL語句,實現資料庫事務的方法。資料庫用的Oracle

    LinuxLinux統計當前文件夾的文件個數、目錄個數

    article logs 過濾 ref bash 輸出 子文件夾 http 輸出信息 統計當前文件夾下文件的個數,包括子文件夾裏的 ls -lR|grep "^-"|wc -l 統計文件夾下目錄的個數,包括子文件夾裏的 ls -lR|grep "^d"

    css回想經典的布局

    範圍 使用 you 方式 窮舉 add height 設置 蘊含   看到這張圖相信大多數人都很熟悉,這曾經是一種經典的布局方式,一道經典的面試題,但是隨著歲月的流轉,時光的交替(頗有一種“天下風雲出我輩,一入江湖歲月催”的感慨,哈哈),它一步步逐漸退出了歷史舞臺,不過在

    轉載VMware的Ubuntu用ifconfig不能顯示ip地址的解決方案

    技術分享 linu p地址 ssg 們的 網絡接口 ssh 註意 onf 轉載於 http://blog.163.com/wjn_mcu/blog/static/23801601620146161062704/ 背景 在虛擬機下運行操作系統,尤其是Linux系統已經是非

    Ubuntu外放有聲音 耳機沒聲音

    新的 驅動 手機 發現 停止 執行 恢復 保存 機會 真是使用linux每天都有新的發現啊,今天早上起來用電腦,想聽幾首歌,插上耳機後發現沒聲音,我還以為是耳機壞了,就把耳機插在了手機上,發現耳機有聲音,很納悶,我象是不是電腦接口有問題了,但是在進系統的時候耳機會響一下,所

    Linux查看進程打開的文件句柄數

    art blog targe 時間 ase 響應時間 nbsp lin repl ---查看系統默認的最大文件句柄數,系統默認是1024 # ulimit -n 1024 ----查看當前進程打開了多少句柄數 # lsof -n|awk ‘{print $2}‘|sort

    轉載linux的mount命令詳解;

    文件的 flag 自動加載 網絡文件系統 解決問題 選項 lock home 多個參數 以下內容來自:http://blog.csdn.net/clozxy/article/details/5299054 http://linux.chinaunix.net/techdo

    轉載Linuxchkconfig命令詳解

    name scrip 再次 http 缺省 重新 禁止 level pool chkconfig命令主要用來更新(啟動或停止)和查詢系統服務的運行級信息。謹記chkconfig不是立即自動禁止或激活一個服務,它只是簡單的改變了符號連接。 使用語法:chkconfig [--

    Python Web開發框架的基本概念與開發的準備工作

    世紀 依賴包 ade 並不是 模板 界面 inux tar cal Web框架基本概念 現在再來寫這篇文章顯然有些馬後炮的意思。不過正是因為已經學習了Flask框架, 並且未來計劃學習更加體系化的Django框架,在學習過程中碰到的很多術語等等,非常有必要通過這樣一篇

    Linux/proc目錄簡介

    map kms slab proc文件系統 文件格式 應用 environ 一段時間 內存映射 1. /proc目錄Linux 內核提供了一種通過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。proc文件系統是一個偽文件系統,它只存在內存當中,而

    POI導出excel文件,不生成中間文件,直接將內存中的數據創建對象下載到瀏覽器

    src sheet xssf xls close creat 下載 position new 不是從InputStream中read,然後outputStream再write @RequestMapping("download4Excel") public v

    Mac升級python2.7到python3.6

    分享 www. blog sso 沒有 python3 pip 讀者 oot 1. 前言 Mac系統自帶python2.7,本文目的是將自帶的python升級到3.6版本。 網上有本多的做法是讓python2.7和python3.X兩個版本共存,博主並不知道,是兩版本共存