使用easyui的擴展進行頁面上表格的導出Excel


可以導出為excel、pdf,可以進行打印

參考位置:http://www.jeasyui.net/extension/204.html
可在上述位置 下載文件 進行查看,其中引用的easyui的插件自行准備吧。
參考位置的導出為導出當前頁面數據,所以進行行了修改,可以導出按照條件查找的數據,就是修改了數據源而已。

頁面中添加上述下載的<Mydatagrid-export.js的引用:

<script src="~/Content/easyui1.7.0/Mydatagrid-export.js"></script>

 


 

一、導出excel

1、html:

<input id='btnExport' type='button' class='tools_btn' value='➲ 導 出' onclick="btn_export()" />

2、導出的方法:其中,controller和action、參數、導出文件名稱可自行修改;

//導出
    function btn_export() {
        var myDate = new Date();
        var rows = GetAllDataByWhere("/ControllerName/GetGoodListByWhere", { param1: escape($('#XXX').val()), param2: escape($('#YYY').val()) });
        $('#MyGrid').datagrid('toExcel', { filename: '導出文件名稱-' + myDate.getFullYear() + myDate.getMonth() + myDate.getDate() + '.xls', rows: rows })
    }

3、GetAllDataByWhere方法:使用的ajax請求獲取數據,返回查詢的結果。

//根據條件查詢所有數據
function GetAllDataByWhere(url, param) {
    $.ajax({
        url: url,
        type: "post",
        data: param,
        dataType: "json",
        async: false,
        cache: false,
        success: function (data) {
            rows = data.rows;
        },
        error: function () {
            layer.msg("數據查詢錯誤!");
            return;
        }
    });
    return rows;
}

 4、后台數據查詢方法:有些內容可自行忽略,查詢根據自己的條件進行查詢

public ActionResult GetGoodListByWhere(string goodName, string classid)
        {
            Expression<Func<GoodDesctiption, bool>> where = c => true && c.deleteMark == 0;
            string goodname = Server.UrlDecode(goodName);
            if (!string.IsNullOrEmpty(goodname))
            {
                where = where.And(c => c.goodName.Contains(goodname));
            }
            if (!string.IsNullOrEmpty(classid))
            {
                //查詢本產品分類以及本產品分類的子分類下的產品
                var list = GetGoodTypeListRecursion(classid);
                where = where.And(ExpressionExtensions.GetConditionExpression<GoodDesctiption>(list.ToArray(), "classid"));

                //where = where.And(c => c.classid == classid);
            }

            var temp = OperateContext.Current.BllContext.IGoodDesctiptionBll.GetList(where).ToList();
            var result = temp.Select(c => new
            {
                id = c.id,
                goodCode = c.goodCode,
                goodName = c.goodName,
                classid = c.classid,
                className = GetGoodClassName(c.classid),
                unit = c.unit,
                specification = c.specification,
                offer = c.offer,
                description = c.description
            });

            return Json(new DataGridModel() { rows = result});
        }

根據以上可以進行按照查詢條件查詢結果的導出。 


 

二、打印

直接根據上面的方法就可以了:

1、html:

<input id='btnPrint' type='button' class='tools_btn' value='📖 打 印' onclick="btn_print()" />

2、打印的方法:其中,controller和action、參數、導出文件名稱可自行修改;

//打印
    function btn_print() {
        var rows = GetAllDataByWhere("/ControllerName/GetGoodListByWhere", { param1: escape($('#XXX').val()), param2: escape($('#YYY').val()) });
        $('#MyGrid').datagrid('print', { filename: 'DataGrid', rows: rows });
    }

3、4與上述一樣


三、導出為PDF

未進行嘗試,有意者可自行測試。具體參考方法在http://www.jeasyui.net/extension/204.html

 


免責聲明!

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



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