1. 程式人生 > >jquery easy ui 1.5實現檔案匯入功能

jquery easy ui 1.5實現檔案匯入功能

             昨天向大家展示了easy ui 的匯出功能,今天向大家展示下匯入的功能,也是通過jxl第三方包實現的。結合網上資源然後自己整理下就ok了,效果圖如下:

如果不用easy ui元件最好加上一個上傳按鈕實現功能。

上傳後,服務端請求相應,通過fileupload包將上傳的檔案存入到臨時磁碟快取中,再通過WorkBook.getBook(in),in是輸入流,(不知道網上為什麼很多都直接上傳到本地伺服器臨時地址中,這樣不是很佔硬碟記憶體嗎?)讀取工作蒲資訊。關鍵程式碼如下

            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setSizeThreshold(4096);// 設定緩衝區大小,這裡是4kb
            factory.setRepository(tempFile); // 設定緩衝區目錄
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setSizeMax(4 * 1024 * 1024);// 設定最大檔案尺寸,這裡是4MB
            List items = upload.parseRequest(request);

然後讀取工作表行數,列數,以及單元格資訊。通過反射機制,將屬性一一對應到列中,反射這個方法我是結合網上提取了一個公共類,直接將屬性名稱,物件名稱,屬性值傳入,就可以一一將單元格內容存入到對應的屬性中,(注意:excel列的欄位和map物件要一一對應),關鍵程式碼和效果圖如下:
 for (int r = 1; r < rows; r++) {// 從第二行追加記錄
                user = new TUser();
                for (int col = 0; col < columns; col++) {// 列數新增資料
                    Cell cell = sheet.getCell(col, r);
                    for (String s : protopy.keySet()) {
                        if (Integer.parseInt(s) == col) {
                            System.out.print(cell.getContents() + "  -");// 輸出單元格資料
                            AssignValueForAttributeUtil.setAttrributeValue(user, protopy.get(s).toString(), cell.getContents());
                            break;
                        }
                    }
                }
                userDao.addUser(user);
                System.out.println();
            }

然後excel資料匯入到資料庫中。



ok,經過兩天整理匯入匯出就ok了,以後準備用這個做個具體的專案釋出到網站中,謝謝大家交流觀看。