zoukankan      html  css  js  c++  java
  • 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'));
  • 相关阅读:
    【Codeforces 349B】Color the Fence
    【Codeforces 459D】Pashmak and Parmida's problem
    【Codeforces 467C】George and Job
    【Codeforces 161D】Distance in Tree
    【Codeforces 522A】Reposts
    【Codeforces 225C】Barcode
    【Codeforces 446A】DZY Loves Sequences
    【Codeforces 429B】Working out
    【Codeforces 478C】Table Decorations
    【Codeforces 478C】Table Decorations
  • 原文地址:https://www.cnblogs.com/huangf714/p/5968608.html
Copyright © 2011-2022 走看看