【JavaWeb】WEB下的excel批量匯入功能
開發中使用Excel匯出功能實現的整個流程。使用框架ssm。
control層 importExcel+parseDataItem:
- @RequestMapping("importExcel.do")
- public String importExcel(@RequestParam MultipartFile uploadfile,
- HttpServletRequest request, HttpServletResponse response) {
-
String fileName = uploadfile.getOriginalFilename();
- if (StringUtils.isEmpty(fileName)) {
- System.out.println("未上傳檔名為空");
- }
- String tempPath = request.getSession().getServletContext().getRealPath("/")
- + "upload";
- File dir = new File(tempPath);
-
if (!tempPath.endsWith(File.separator)) {
- tempPath = tempPath + File.separator;
- }
- if (!dir.exists()) {
- dir.mkdirs();
- }
- System.out.println(tempPath);
- //製作路徑
- String newFile = tempPath + fileName;
- File file = new File(newFile);
- try {
-
FileCopyUtils.copy(uploadfile.getBytes(), file);
- //匯入excel中的內容
- this.<span style="color:#ff0000;">parseDataItem</span>(newFile);
- System.out.println("成功匯入");
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- FileUtils.forceDelete(file);
- } catch (IOException e) {
- e.printStackTrace();
- return"uploadfail";
- }
- }
- return"uploadsuccess";
- }
- publicfinalboolean <span style="color:#ff0000;">parseDataItem</span>(String file){
- return ysdwAnimalService.<span style="color:#ff0000;">importExcel</span>(file);
- }
- @Transactional
- publicboolean importExcel(String file) {
- finalint rowStart = 2;
- finalint cellStrart = 0;
- List<YsdwAnimal> list = new LinkedList<YsdwAnimal>();
- YsdwAnimal ysdwAnimal = null;
- try {
- List<Object> dataList = ReadExcleUtils.<span style="color:#ff0000;">readExcel</span>(file, new YsdwAnimalExcel(), rowStart, cellStrart);
- for (Object object : dataList) {
- YsdwAnimalExcel excel = (YsdwAnimalExcel) object;
- ysdwAnimal = new YsdwAnimal();
- String uuid = CommonUtils.getUuid();
- ysdwAnimal.setId(uuid);
- ysdwAnimal.setAnimalname(excel.getAnimalname());
- ysdwAnimal.setAnimalnumber(excel.getAnimalnumber());
- ysdwAnimal.setAnimaltypes(excel.getAnimaltypes());
- ysdwAnimal.setVegetationtypes(excel.getVegetationtypes());
- ysdwAnimal.setJingdu(excel.getJingdu());
- ysdwAnimal.setWeidu(excel.getWeidu());
- ysdwAnimal.setPodu(excel.getPodu());
- ysdwAnimal.setPowei(excel.getPowei());
- ysdwAnimal.setPoxiang(excel.getPoxiang());
- ysdwAnimal.setZuobiao(excel.getZuobiao());
- ysdwAnimal.setHaiba(excel.getHaiba());
- ysdwAnimal.setTianqi(excel.getTianqi());
- ysdwAnimal.setJilusj(excel.getJilusj());
- ysdwAnimal.setQita(excel.getQita());
- ysdwAnimal.setDid(excel.getDid());
- ysdwAnimal.setBaohdj(excel.getBaohdj());
- list.add(ysdwAnimal);
- }
- //存庫
- for (YsdwAnimal YsdwAnimal : list) {
- YsdwAnimalMapper.saveOrUpdate(YsdwAnimal);
- System.out.println("存庫");
- }
- } catch (IOException e) {
- e.printStackTrace();
- returnfalse;
- }
- returntrue;
- }
- /**
- * 讀取EXCLE2007的方法
- * @param filePath 檔名
- * @param obj 物件名
- * @param rowStart 起點行(從0開始)
- * @param cellStrart 起點列(從0開始)
- * @return 物件集合
- * @throws IOException
- */
- @SuppressWarnings("rawtypes")
- publicstatic List<Object> readExcel(final String filePath, final Object obj, finalint rowStart, finalint cellStrart) throws IOException {
- List<Object> aList = null;
- final String extension = filePath.substring(filePath.lastIndexOf(".")+1, filePath.length());//擷取副檔名
- final Class c = obj.getClass();//獲得類物件
- <span style="color:#cc0000;">final Field[] filds = c.getDeclaredFields();//獲得該類中所有的屬性</span>
- final File excelFile = new File(filePath);
- final InputStream is = new FileInputStream(excelFile);// 獲取檔案輸入流
- if ("xlsx".equals(extension)) {//解析2007
-
相關推薦
【JavaWeb】WEB下的excel批量匯入功能
開發中使用Excel匯出功能實現的整個流程。使用框架ssm。 control層 importExcel+parseDataItem: @RequestMapping("importExcel.do") public String im
【轉載】QP02檢驗計劃批量匯入
其他參考: https://archive.sap.com/discussions/thread/3430191 *&---------------------------------------------------------------------* *& PROGRAM
【JavaWeb】IDEA下 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
【Linux】Linux下統計當前文件夾下的文件個數、目錄個數
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
【轉載】Linux下chkconfig命令詳解
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兩個版本共存,博主並不知道,是兩版本共存