一、說明
導入導出
是系統中經常需要用到的功能,大部分系統的導入功能都是上傳一個excel文件,然後導入成功就提示導入成功,失敗就提示導入失敗,頂多返回一個導入結果的excel,非常的不直觀。如何設計一個優雅的導入讓用戶能非常直觀的在數據還沒導入進系統的時候看到有哪些數據是可以導入的,有哪些是會導入失敗的就很重要,本着以人爲本的原則,我開發了一個基於Magicodes.IE.Excel
的批量導入組件,支持導入預覽,導入錯誤提示,分批導入等功能,非常好用,詳細代碼可以查看SimpleAdmin.Plugin.ImportExport
插件。具體實現可以參考用戶管理
功能
二、導入數據
新建一個Dto實體繼承ImportTemplateInput
,這個實體是我們的導入模板實體。
構造函數注入IImportExportService
新建獲取模板方法,系統會根據傳入的dto類自動生成excel文件返回。
前端引用批量導入組件,參考用戶管理
,點擊用戶導入
按鈕,下載導入模板。
系統會自動下載excel模板文件
回到後端,用戶在模板中填入數據並上傳文件後,需要預覽導入的數據,系統要讀取excel文件並判斷用戶輸入的數據是否合法,一個是通過Magicodes.IE.Excel
去判斷,還有一部分是根據業務自己去判斷。
後端讀取數據並校驗之後,返回預覽結果,支持到字段的錯誤提示,非常智能。並且可以在現有結果基礎上修改,根據提示修改爲正確的值。
前端點擊繼續
按鈕,提示是否確認導入,點擊確定後開始導入數據。在後端,我們同樣的需要再檢查一遍數據格式是否正確,並通過GetImportResultPreview
方法獲取導入結果。最後轉爲數據庫實體並插入數據庫。
導入結果返回給前端,可以看到導入數量,成功導入和導入失敗數量。
點擊查看錯誤
按鈕可以查看哪些數據是錯誤的。
三、大數據導入
導入組件默認數據量小於1000的時候是全量導入,如果需要分批導入只需要設置導入組件的max-upload-count
屬性即可。
四、數據導入
數據導出畢竟簡單,直接通過後臺導出當前查詢條件的所有數據,首先需要一個Dto配置導出的excel格式信息。
導出方法也很簡單,查詢數據,轉爲dto,導出excel文件。
點擊頁面導出按鈕,即可導出結果excel,詳情參考用戶管理
頁面。