c# EASYUI+MVC filebox示例

參考來源

https://blog.csdn.net/fsdad/article/details/73200618

 

 

文件   Excel.cshtml

 


@{
    ViewBag.Title = "Excel";
    Layout = null;
}

<!DOCTYPE HTML>
@Styles.Render("~/easyui/css")
@Scripts.Render("~/easyui/js")

<script>
    $(function () {
        initPage();
        btnImp();
        btnTmpImport();
    });

    function initPage()
    {
        $('#fileImport').filebox({
            buttonText: '請選擇文件',
            buttonAlign: 'right'
        })

        $("#dgimp").datagrid({
            rownumbers: true,
            pagination:true,
            pagePosition: 'bottom',
            pageSize: 10,
            pageList:[10,20,30],
            columns: [[
                {
                    field: 'ck',
                    checkbox: true
                },
                {
                    field: 'tcode',
                    title: '代碼'
                },
                {
                    field: 'tname',
                    title:'名稱'
                }
            ]]

        });



    }
    function btnTmpImport() {
        $("#btnTmpImport").bind('click', function () {
            debugger;
            //var file = document.getElementById('fileImport').files[0];  //不知道為什麼用這種方式無法取到Uncaught TypeError: Cannot read property '0' of null
            //console.log(file);
            var file = $("input[name=fileImport]")[0].files[0];//瀏覽器F12找到對應的input name  貌似filebox由一個span和兩個input,具體看F12
            var fileName = file.name;
            var file_typename = fileName.substring(fileName.lastIndexOf('.'), fileName.length);
            var formData = new FormData($("#importFileForm")[0]);
            if (file_typename == ".xls" || file_typename==".xlsx") {
                
                $.ajax({
                    @*url: "@Url.Content("~/sysinfo/excel/importExcel")",*@
                    url: "/sysinfo/excel/importExcel",
                    type: 'POST',
                    data: formData,
                    //async: false,
                    //cache: false,
                    contentType: false,
                    processData: false,//布爾值,規定通過請求發送的數據是否轉換爲查詢字符串。默認是 true。如果不設置,請求非法
                    dataType:'json',
                    success: function (res, status, xhr) {
                        switch (res.state)
                        {
                            case 1:
                                $("#dgimp").datagrid({
                                    data: res.data
                                });
                                break;
                            default:
                                break;
                        }
                  
                    },
                    beforeSend: function () { },
                    error: function () { },
                    complete: function () { }

            });
            }
            else {
                $.messager.alert("提示","請選擇xls/xlsx格式的文件");
            }
           
        });
    }

    function btnImp()
    {

    }




</script>
<style>
    * {
    margin:0;
    padding:0;
    }
</style>
<div style="height:10px;"></div>



    <form id="importFileForm" method="post" enctype="multipart/form-data">
        <div>
            <input id="fileImport" class="easyui-filebox" style="width:300px" name="fileImport">
            <a id="btnTmpImport" class="easyui-linkbutton">臨時導入</a>
            <a id="btnImport" class="easyui-linkbutton">正式導入</a>
        </div>
    </form>

    <div style="height:10px;"></div>
    <div id="dgimp" class="easyui-datagrid" style="margin-bottom:0;padding-bottom:0;width:1415px;height:560px;"></div>

 

文件:excelController.cs

using MyWeb.fileAttribute;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;
//using NPOI.XSSF.UserModel;

namespace MyWeb.Areas.sysinfo.Controllers
{
    //[CheckLogin(true)]
    public class excelController : basecomm.baseController
    {
        // GET: sysinfo/excel
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult Excel()
        {
            return View();
        }

        public JsonResult importExcel()
        {
            bll.bllcomm.ResultObject resObj = new bll.bllcomm.ResultObject();
            HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
            if (files.Count > 0)
            {
                //獲取文件集合中的第一個文件(每次只上傳一個文件)
                HttpPostedFile file = files[0];
                string strUploadFileName = file.FileName;
                string datetime = DateTime.Now.ToString("yyyyMMddHHmmssff");
                string strNewFileName = datetime + "_" + strUploadFileName;
                string strDir = Server.MapPath(string.Format("~/DirFiles/UploadFile"));
                if (!Directory.Exists(strDir))
                {
                    Directory.CreateDirectory(strDir);
                }
                string strSaveFileName = strDir + "\\" + strNewFileName;
                file.SaveAs(strSaveFileName);

                //NPOI上傳Excel
                //FileStream inputStream = new FileStream(strSaveFileName, FileMode.Open);
                //XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
                //XSSFSheet sheet = workbook.GetSheetAt(0) as XSSFSheet;
                //int rowNum = sheet.PhysicalNumberOfRows;
                //for (int i = 1; i < rowNum; i++)
                //{
                //    XSSFRow row = sheet.GetRow(i) as XSSFRow;
                //    XSSFCell cell0 = row.GetCell(0) as XSSFCell;
                //    XSSFCell cell1 = row.GetCell(1) as XSSFCell;
                //    XSSFCell cell2 = row.GetCell(2) as XSSFCell;
                //}



                }

                return Json(resObj);
        }



    }
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章