• EasyUI的DataGrid 打印导出


    1.打印部分

      新增print.js

    // strPrintName 打印任务名
    // printDatagrid 要打印的datagrid
    function CreateFormPage(strPrintName, printDatagrid) {
    var tableString = '<table cellspacing="0" class="pb">';
    var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象
    var columns = printDatagrid.datagrid("options").columns; // 得到columns对象
    var nameList = '';

    // 载入title
    if (typeof columns != 'undefined' && columns != '') {
    $(columns).each(function (index) {
    tableString += ' <tr>';
    if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {
    for (var i = 0; i < frozenColumns[index].length; ++i) {
    if (!frozenColumns[index][i].hidden) {
    tableString += ' <th width="' + frozenColumns[index][i].width + '"';
    if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {
    tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';
    }
    if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {
    tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';
    }
    if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {
    nameList += ',{"f":"' + frozenColumns[index][i].field + '", "a":"' + frozenColumns[index][i].align + '"}';
    }
    tableString += '>' + frozenColumns[0][i].title + '</th>';
    }
    }
    }
    for (var i = 0; i < columns[index].length; ++i) {
    if (!columns[index][i].hidden) {
    tableString += ' <th width="' + columns[index][i].width + '"';
    if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {
    tableString += ' rowspan="' + columns[index][i].rowspan + '"';
    }
    if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {
    tableString += ' colspan="' + columns[index][i].colspan + '"';
    }
    if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {
    nameList += ',{"f":"' + columns[index][i].field + '", "a":"' + columns[index][i].align + '"}';
    }
    tableString += '>' + columns[index][i].title + '</th>';
    }
    }
    tableString += ' </tr>';
    });
    }
    // 载入内容
    var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行
    var nl = eval('([' + nameList.substring(1) + '])');
    for (var i = 0; i < rows.length; ++i) {
    tableString += ' <tr>';
    $(nl).each(function (j) {
    var e = nl[j].f.lastIndexOf('_0');

    tableString += ' <td';
    if (nl[j].a != 'undefined' && nl[j].a != '') {
    tableString += ' style="text-align:' + nl[j].a + ';"';
    }
    tableString += '>';
    if (e + 2 == nl[j].f.length) {
    tableString += rows[i][nl[j].f.substring(0, e)];
    }
    else
    tableString += rows[i][nl[j].f];
    tableString += '</td>';
    });
    tableString += ' </tr>';
    }
    tableString += ' </table>';
    window.showModalDialog("print.htm", tableString,
    "location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;");
    }


    复制代码
    // strPrintName 打印任务名
    // printDatagrid 要打印的datagrid
    function CreateFormPage(strPrintName, printDatagrid) {
        var tableString = '<table cellspacing="0" class="pb">';
        var frozenColumns = printDatagrid.datagrid("options").frozenColumns;  // 得到frozenColumns对象
        var columns = printDatagrid.datagrid("options").columns;    // 得到columns对象
        var nameList = '';
    
        // 载入title
        if (typeof columns != 'undefined' && columns != '') {
            $(columns).each(function (index) {
                tableString += '
    <tr>';
                if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {
                    for (var i = 0; i < frozenColumns[index].length; ++i) {
                        if (!frozenColumns[index][i].hidden) {
                            tableString += '
    <th width="' + frozenColumns[index][i].width + '"';
                            if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {
                                tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';
                            }
                            if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {
                                tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';
                            }
                            if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {
                                nameList += ',{"f":"' + frozenColumns[index][i].field + '", "a":"' + frozenColumns[index][i].align + '"}';
                            }
                            tableString += '>' + frozenColumns[0][i].title + '</th>';
                        }
                    }
                }
                for (var i = 0; i < columns[index].length; ++i) {
                    if (!columns[index][i].hidden) {
                        tableString += '
    <th width="' + columns[index][i].width + '"';
                        if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {
                            tableString += ' rowspan="' + columns[index][i].rowspan + '"';
                        }
                        if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {
                            tableString += ' colspan="' + columns[index][i].colspan + '"';
                        }
                        if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {
                            nameList += ',{"f":"' + columns[index][i].field + '", "a":"' + columns[index][i].align + '"}';
                        }
                        tableString += '>' + columns[index][i].title + '</th>';
                    }
                }
                tableString += '
    </tr>';
            });
        }
        // 载入内容
        var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行
        var nl = eval('([' + nameList.substring(1) + '])');
        for (var i = 0; i < rows.length; ++i) {
            tableString += '
    <tr>';
            $(nl).each(function (j) {
                var e = nl[j].f.lastIndexOf('_0');
    
                tableString += '
    <td';
                if (nl[j].a != 'undefined' && nl[j].a != '') {
                    tableString += ' style="text-align:' + nl[j].a + ';"';
                }
                tableString += '>';
                if (e + 2 == nl[j].f.length) {
                    tableString += rows[i][nl[j].f.substring(0, e)];
                }
                else
                    tableString += rows[i][nl[j].f];
                tableString += '</td>';
            });
            tableString += '
    </tr>';
        }
        tableString += '
    </table>'; 
        window.showModalDialog("print.htm", tableString,
        "location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;");
    }
    复制代码

      新增print.htm

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>数据打印</title>

    <style type="text/css">
    body{background:white;margin:0px;padding:0px;font-size:13px;text-align:left;}
    .pb{font-size:13px;border-collapse:collapse;}
    .pb th{font-weight:bold;text-align:center;border:1px solid #333333;padding:2px;}
    .pb td{border:1px solid #333333;padding:2px;}
    </style>
    </head>
    <body>
    <script type="text/javascript">
    document.write(window.dialogArguments);
    window.print();
    </script>
    </body>
    </html>


    复制代码
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>数据打印</title>
        
        <style type="text/css">
        body{background:white;margin:0px;padding:0px;font-size:13px;text-align:left;}
    .pb{font-size:13px;border-collapse:collapse;}
    .pb th{font-weight:bold;text-align:center;border:1px solid #333333;padding:2px;}
    .pb td{border:1px solid #333333;padding:2px;}
    </style>
    </head>
    <body>
        <script type="text/javascript">
            document.write(window.dialogArguments);
            window.print();
        </script>
    </body>
    </html>
    复制代码

      页面引用print.js并调用

    CreateFormPage("datagrid",$("#dg"));

    2.导出部分

      新增export.js

    function ChangeToTable(printDatagrid) {
    var tableString = '<table cellspacing="0" class="pb">';
    var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象
    var columns = printDatagrid.datagrid("options").columns; // 得到columns对象
    var nameList = new Array();

    // 载入title
    if (typeof columns != 'undefined' && columns != '') {
    $(columns).each(function (index) {
    tableString += ' <tr>';
    if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {
    for (var i = 0; i < frozenColumns[index].length; ++i) {
    if (!frozenColumns[index][i].hidden) {
    tableString += ' <th width="' + frozenColumns[index][i].width + '"';
    if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {
    tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';
    }
    if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {
    tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';
    }
    if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {
    nameList.push(frozenColumns[index][i]);
    }
    tableString += '>' + frozenColumns[0][i].title + '</th>';
    }
    }
    }
    for (var i = 0; i < columns[index].length; ++i) {
    if (!columns[index][i].hidden) {
    tableString += ' <th width="' + columns[index][i].width + '"';
    if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {
    tableString += ' rowspan="' + columns[index][i].rowspan + '"';
    }
    if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {
    tableString += ' colspan="' + columns[index][i].colspan + '"';
    }
    if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {
    nameList.push(columns[index][i]);
    }
    tableString += '>' + columns[index][i].title + '</th>';
    }
    }
    tableString += ' </tr>';
    });
    }
    // 载入内容
    var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行
    for (var i = 0; i < rows.length; ++i) {
    tableString += ' <tr>';
    for (var j = 0; j < nameList.length; ++j) {
    var e = nameList[j].field.lastIndexOf('_0');

    tableString += ' <td';
    if (nameList[j].align != 'undefined' && nameList[j].align != '') {
    tableString += ' style="text-align:' + nameList[j].align + ';"';
    }
    tableString += '>';
    if (e + 2 == nameList[j].field.length) {
    tableString += rows[i][nameList[j].field.substring(0, e)];
    }
    else
    tableString += rows[i][nameList[j].field];
    tableString += '</td>';
    }
    tableString += ' </tr>';
    }
    tableString += ' </table>';
    return tableString;
    }

    function Export(strXlsName, exportGrid) {
    var f = $('<form action="export.aspx" method="post" id="fm1"></form>');
    var i = $('<input type="hidden" id="txtContent" name="txtContent" />');
    var l = $('<input type="hidden" id="txtName" name="txtName" />');
    i.val(ChangeToTable(exportGrid));
    i.appendTo(f);
    l.val(strXlsName);
    l.appendTo(f);
    f.appendTo(document.body).submit();
    try{
    document.body.removeChild(f);}catch(e){}
    }


    复制代码
    function ChangeToTable(printDatagrid) {
        var tableString = '<table cellspacing="0" class="pb">';
        var frozenColumns = printDatagrid.datagrid("options").frozenColumns;  // 得到frozenColumns对象
        var columns = printDatagrid.datagrid("options").columns;    // 得到columns对象
        var nameList = new Array();
    
        // 载入title
        if (typeof columns != 'undefined' && columns != '') {
            $(columns).each(function (index) {
                tableString += '
    <tr>';
                if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {
                    for (var i = 0; i < frozenColumns[index].length; ++i) {
                        if (!frozenColumns[index][i].hidden) {
                            tableString += '
    <th width="' + frozenColumns[index][i].width + '"';
                            if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {
                                tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';
                            }
                            if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {
                                tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';
                            }
                            if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {
                                nameList.push(frozenColumns[index][i]);
                            }
                            tableString += '>' + frozenColumns[0][i].title + '</th>';
                        }
                    }
                }
                for (var i = 0; i < columns[index].length; ++i) {
                    if (!columns[index][i].hidden) {
                        tableString += '
    <th width="' + columns[index][i].width + '"';
                        if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {
                            tableString += ' rowspan="' + columns[index][i].rowspan + '"';
                        }
                        if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {
                            tableString += ' colspan="' + columns[index][i].colspan + '"';
                        }
                        if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {
                            nameList.push(columns[index][i]);
                        }
                        tableString += '>' + columns[index][i].title + '</th>';
                    }
                }
                tableString += '
    </tr>';
            });
        }
        // 载入内容
        var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行
        for (var i = 0; i < rows.length; ++i) {
            tableString += '
    <tr>';
            for (var j = 0; j < nameList.length; ++j) {
                var e = nameList[j].field.lastIndexOf('_0');
    
                tableString += '
    <td';
                if (nameList[j].align != 'undefined' && nameList[j].align != '') {
                    tableString += ' style="text-align:' + nameList[j].align + ';"';
                }
                tableString += '>';
                if (e + 2 == nameList[j].field.length) {
                    tableString += rows[i][nameList[j].field.substring(0, e)];
                }
                else
                    tableString += rows[i][nameList[j].field];
                tableString += '</td>';
            }
            tableString += '
    </tr>';
        }
        tableString += '
    </table>';
        return tableString;
    }
    
    function Export(strXlsName, exportGrid) {
        var f = $('<form action="export.aspx" method="post" id="fm1"></form>');
        var i = $('<input type="hidden" id="txtContent" name="txtContent" />');
        var l = $('<input type="hidden" id="txtName" name="txtName" />');
        i.val(ChangeToTable(exportGrid));
        i.appendTo(f);
        l.val(strXlsName);
        l.appendTo(f);
        f.appendTo(document.body).submit();
       try{
        document.body.removeChild(f);}catch(e){}
    }
    复制代码

      新增export.aspx后台

    protected void Page_Load(object sender, EventArgs e)
    {
    Response.Clear();
    Response.Buffer = true;
    Response.Charset = "utf-8";
    Response.ContentEncoding = System.Text.Encoding.UTF8;
    Response.AppendHeader("content-disposition", "attachment;filename="" + HttpUtility.HtmlEncode(Request["txtName"] ?? DateTime.Now.ToString("yyyyMMdd")) + ".xls"");
    Response.ContentType = "Application/ms-excel";
    Response.Write("<html> <head> ");
    Response.Write("<style type="text/css"> .pb{font-size:13px;border-collapse:collapse;} " +
    " .pb th{font-weight:bold;text-align:center;border:0.5pt solid windowtext;padding:2px;} " +
    " .pb td{border:0.5pt solid windowtext;padding:2px;} </style> </head> ");
    Response.Write("<body> " + Request["txtContent"] + " </body> </html>");
    Response.Flush();
    Response.End();
    }


    复制代码
     protected void Page_Load(object sender, EventArgs e)
        {
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "utf-8";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.AppendHeader("content-disposition", "attachment;filename="" + HttpUtility.HtmlEncode(Request["txtName"] ?? DateTime.Now.ToString("yyyyMMdd")) + ".xls"");
            Response.ContentType = "Application/ms-excel";
            Response.Write("<html>
    <head>
    ");
            Response.Write("<style type="text/css">
    .pb{font-size:13px;border-collapse:collapse;} " +
                           "
    .pb th{font-weight:bold;text-align:center;border:0.5pt solid windowtext;padding:2px;} " +
                           "
    .pb td{border:0.5pt solid windowtext;padding:2px;}
    </style>
    </head>
    ");
            Response.Write("<body>
    " + Request["txtContent"] + "
    </body>
    </html>");
            Response.Flush();
            Response.End();
        }
    复制代码

      export.aspx前台仅保留

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="export.aspx.cs" Inherits="export" %>

      页面引用export.js并调用

    Export('outputexcel', $('#dg'));
  • 相关阅读:
    8月份的To-Do List
    Block作为返回值时的使用
    Block作为参数时的使用
    AFNetwork 作用和用法详解
    UIScrollView监听静止的数种情况
    UIAppearance
    自定义Log实现条件编译
    事件的基本概念
    ubuntu16.04下安装MySQL
    在Ubuntu16.04下搭建samba,实现linux与windows之间的资源共享
  • 原文地址:https://www.cnblogs.com/huangf714/p/5968608.html
Copyright © 2020-2023  润新知