mvc4 強大的導出和不需要上傳文件的批量導入EXCEL--SNF快速開發平台3.1


數據的導入導出,在很多系統里面都比較常見,這個導入導出的操作,在Winform里面比較容易實現,但在Web上我們應該如何實現呢?本文主要介紹利用MVC4+EasyUI的特點,並結合文件上傳控件,實現文件不需要上傳到服務器上就可以馬上進行處理並顯示,然后確認后把數據寫入數據庫的過程。

我們知道,Web上對Excel的處理和Winform的有所差異,如果是在Web上處理,我們需要把Excel文檔上傳到服務器上,然后讀取文件進行顯示。但在SNF上確實實現了與Winform一樣的不需要上傳到服務器,而是直接讀取的技術,這是種挑戰。

      目前SNF導入組件的功能需求如下:

        1.    要做到通用,不能一個頁面相同的工作再做一遍,就算復制也不可以因為維護成本太高。

        2.    要有導入預覽,保存前確認數據是否正確。

        3.    針對是否這樣數據類型進行格式化,不要顯示true/false或者1/0。

        4.    可以針對導入的預覽數據進行刪除某行。

        5.    可以下載導入模版。

        6.    要操作簡單實用

        7.    Web導入也不要先上傳到服務器上再讀取的方式,也要像winform一樣不上傳到服務器上進行直接讀取。大家都知道對於BS這種要求還是比較困難的,沒辦法既然有需求就要想辦法。

 

在Winform里面,我們處理Excel數據導入的界面如下所示。

在Web上的主界面如下所示。

導入界面如下所示

選擇文件后顯示的效果,並且導入文件有效列1與0進行了格式化如下

確認數據沒有問題后,點擊保存導入數據成功后如下提示:

導入模版:

2Web數據導入的處理邏輯和代碼

為了實現Web上的數據導入導出操作,我們需要增加兩個按鈕,一個是導入按鈕,一個是導出按鈕。

<a class="easyui-linkbutton" data-bind="click:importClick" href="#" icon="icon-page_white_excel" plain="true" title="導入">導入</a></div>

導入的JS處理代碼如下所示。

//導入        
    this.importClick = function () {
        snf.importExcel(html, '(角色-導入角色數據)', 'ImportRoleTemplate', '系統角色-模版', '-api-sys-role-PostImportRole', 'icon-group');

上面主要就是彈出一個窗口(上面的導入數據窗口),用來方便客戶選擇Excel文件並保存數據或者下載導入模板等操作的。

然后在Import.cshtml的視圖代碼里面,我們需要初始化Datagrid和相關的界面元素,初始化DataGrid的代碼如下所示。

<div class="z-toolbar">
               <a id="a_save"    href="#" plain="true" class="easyui-linkbutton" icon="icon-save"          title="保存導入數據" data-bind="click:saveClick">  保存導入數據</a>
               <a id="a_delete"  href="#" plain="true" class="easyui-linkbutton" icon="icon-cross"         title ="刪除"        data-bind="click:deleteClick"> 刪除</a>
               <a id="a_refresh" href="#" plain="true" class="easyui-linkbutton" icon="icon-arrow_refresh" title="刷新"         data-bind="click:refreshClick">刷新</a>
             
               <div style=" position:absolute; right:10px;">
                   <a id="a_downloadFile"  href="#" target="_blank"  class="icon-page_excel" title="模版.xls" data-bind="attr: { 'title': form.templateName },click:downloadFileClick">
                       &nbsp;&nbsp;<span data-bind="text:form.templateName" style="margin-left:5px;"></span></a>
               </div>
            </div>

            <table id="grid" data-bind="datagrid:grid"> </table>

3、Web上SNF標准數據導出操作

顯示增加導出按鈕:

<a href="#" plain="true" class="easyui-splitbutton" data-options="menu:'#dropdown1',iconCls:'icon-download'"  data-bind="click:downloadClick"  >導出</a>

作者:王春天 2015-01-22

作者Blog:http://www.cnblogs.com/spring_wang

原文:http://www.cnblogs.com/spring_wang/p/4240939.html

如果覺得還不錯,歡迎轉載。

本系列文章列表如下:

基於SNF-快速開發平台框架的系列文章:

SNF快速開發平台3.2之--.Net可擴展的單據編號生成器-SNF.CodeRule

SNF快速開發平台3.1之--審核流(3)低調奢華,簡單不凡,實例演示-SNF.WorkFlow

SNF快速開發平台3.1之--審核流(2)流程設計-SNF.WorkFlow功能使用說明

SNF快速開發平台3.1之--審核流(1)SNF.WorkFlow審核流簡介

SNF快速開發平台3.1之--完美的代碼生成器SNF.CodeGenerator-快速開發者的利器

基於MVC4+EasyUI的Web開發框架--Spring.Net.FrameworkV3.0總體介紹

SNF快速開發平台3.1之--MVC 打印解決方案

SNF快速開發平台3.1之--文件批量上傳-統一附件管理器-在線預覽文件(有互聯網和沒有兩種)

SNF快速開發平台3.1之--asp.net mvc4 強大的導出和不需要上傳文件的批量導入EXCEL

SNF快速開發平台3.0之MVC通用控件庫展示-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速開發平台3.0之BS頁面展示和九大優點-部分頁面顯示效果-Asp.net+MVC4.0+WebAPI+EasyUI +Knockout

SNF快速開發平台3.0之-界面個性化配置+10種皮膚+7種菜單-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速開發平台3.0之-CS頁面-Asp.net+Spring.Net.Framework

SNF快速開發平台3.0之--系統里廣播的作用--迅速及時、簡明扼要的把信息發送給接收者

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM