1、匯入資料
下載模板:
前臺:① 讓用戶下載匯入資料的模板
后臺:① 判斷模板檔案是否存在
1. 獲取檔案
2. 判斷檔案是否存在
3. 以流的形式回傳檔案
匯入資料:
前臺:① 獲取需要提交檔案,判斷用戶選擇的檔案是否是Excel檔案
② 使用JavaScript的XMLHttpRequest上傳檔案
1. 創建FormData物件
2. 把需要上傳的檔案添加到創建出來的FormData物件中
3. 創建XMLHttpRequest物件
4. 設定提交方式以及路徑,注意:提交方式一定要為POST提交,GET提
交是有長度限制的,如果檔案的長度大于GET提交的最大長度,檔案
會被截斷,就會影響后面的操作
5. 發送資料
6. 設定回呼(彈出提示訊息,等等)
后臺:① 將上傳檔案轉換為作業簿
1. 獲取檔案擴展名
2. 判斷檔案是否是Excel檔案
3. 創建一個大小與匯入檔案大小一致的二進制陣列
4. 將檔案轉換為二進制陣列
5. 將二進制陣列轉換為記憶體流
6. 將記憶體流轉換為作業簿
② 將作業簿轉換為資料表格
1. 判斷作業簿中是否有作業表
2. 獲取第一個作業表
3. 判斷作業表是否為空表
4. 創建一個資料表格(DataTable)
5. 獲取作業表中的表頭行
6. 獲取作業表的表頭行列數,用于遍歷表頭行資料時使用
7. 獲取作業表的行數,用于遍歷作業表資料時使用
8. 遍歷作業表表頭行資料,生成資料表格中的第一行資料(資料表格的
表頭行)
9. 遍歷作業表中的資料,生成資料表格的資料
10. 移除資料表格中的空行
③ 資料驗證以及創建需要保存的物件
1. 查詢資料庫中對應的表的資訊
2. 創建一個存放所有資料的容器,用于資料查重
3. 創建一個存放需要新增的資料的容器,用于最后資料的保存
4. 遍歷資料表格,注意:第5/6/7/8/9步操作都是在回圈中的
5. 取出當前回圈的行資料,方便資料驗證
6. 創建需要保存的表物件,保存當前回圈的資料
7. 根據需求,對每一行的每一列資料進行校驗,查重,如果通過把資料
就添加到表物件中
8. 將表物件添加到存放所有資料的容器中
9. 將表物件添加到存放需要新增的資料的容器中
④ 保存數據
1. 判斷是否有需要保存的資料,即判斷存放新增資料的容器是否為空
2. 如果涉及兩表或兩表以上,開啟事務,保證資料的統一性
3. 新增資料
4. 保存新增到資料庫
5. 如果開啟事務,需要提交事務,否則不需要
6. 回傳成功訊息
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/13715.html
標籤:非技術區
上一篇:求助:jinja2.exceptions.TemplateNotFound: bootstrap/wtf.html
