0

below is my code I need to export data with excel file

 <form action="<?php echo $_SERVER["PHP_SELF"]; ?>?page=client_plugin" method="post" name="export_excel">

                <div class="control-group">
                    <div class="controls">
                        <button type="submit" id="export" name="export" class="btn btn-primary button-loading" data-loading-text="Loading...">Export MySQL Data to CSV/Excel File</button>
                    </div>
                </div>
            </form>

    <table class="dash-table" width="100%" cellspacing="0" cellpadding="10px" border="0">
        <tr>
            <td>Client Name</td>
            <td>Email</td>
            <td>Health Condition</td>
            <td>Changes</td>
            <td>Image</td>
        </tr>
        <?php 
        foreach ($results1 as $key => $value) { ?>
            <tr>
                <td><?php echo $value->rclient_name;?></td>
                <td><?php echo  $value->email;?></td>
                <td><?php echo  $value->health_condition;?></td>
                <td><?php echo  $value->changes;?></td>
                <td><img src="<?php echo  $value->image;?>" width="50px" height ="50px"></td>

            </tr>

        <?php } ?>

    </table>

    <?PHP if(isset($_POST["export"])) {

     foreach($results1 as $value) {
    //foreach($row as $name => $value) {
        $line .= $comma . '"' . str_replace('"', '""', $name) . '"';
        $comma = ",";
    }
    $line .= "\n";
    fputs($fp, $line);

    // remove the result pointer back to the start
    //mysql_data_seek($res, 0);

    // and loop through the actual data
     foreach($results1 as $value) {

        fputs($fp, $value);

    }

    fclose($fp);
    header('Content-type: application/csv');
    header('Content-Disposition: attachment; filename="export.csv"');
    readfile('export.csv'); 
    }

1 Answer 1

0
<script src="<?php echo plugins_url();?>/client/jquery.js"></script>
<button id="excel" onClick ="$('#dataTable').tableExport({type:'excel',escape:'false'});">  XLS</button>

<button id="print">Print me</button>
<table class="dash-table" width="100%" cellspacing="0" cellpadding="10px" border="0" id="dataTable">
    <tr>
        <td>Client Name</td>
        <td>Email</td>
        <td>Health Condition</td>
        <td>Changes</td>
        <td>Image</td>
    </tr>
    <?php 
    foreach ($results1 as $key => $value) { ?>
        <tr>
            <td><?php echo $value->rclient_name;?></td>
            <td><?php echo  $value->email;?></td>
            <td><?php echo  $value->health_condition;?></td>
            <td><?php echo  $value->changes;?></td>
            <td><img src="<?php echo  $value->image;?>" width="50px" height ="50px"></td>

        </tr>

    <?php } ?>

</table>


 <script src="<?php echo plugins_url();?>/client/tableExport.js"></script>    

 <script type="text/javascript">

//table2excel.js
;(function ( $, window, document, undefined ) {
    var pluginName = "table2excel",

    defaults = {
        exclude: ".noExl",
                name: "Table2Excel"
    };

    // The actual plugin constructor
    function Plugin ( element, options ) {
            this.element = element;
            this.settings = $.extend( {}, defaults, options );
            this._defaults = defaults;
            this._name = pluginName;
            this.init();
    }

    Plugin.prototype = {
        init: function () {
            var e = this;

            e.template = {
                head: "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns=\"http://www.w3.org/TR/REC-html40\"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets>",
                sheet: {
                    head: "<x:ExcelWorksheet><x:Name>",
                    tail: "</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>"
                },
                mid: "</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body>",
                table: {
                    head: "<table>",
                    tail: "</table>"
                },
                foot: "</body></html>"
            };

            e.tableRows = [];

            // get contents of table except for exclude
            $(e.element).each( function(i,o) {
                var tempRows = "";
                $(o).find("tr").not(e.settings.exclude).each(function (i,o) {
                    tempRows += "<tr>" + $(o).html() + "</tr>";
                });
                e.tableRows.push(tempRows);
            });

            e.tableToExcel(e.tableRows, e.settings.name);
        },

        tableToExcel: function (table, name) {
            var e = this, fullTemplate="", i, link, a;

            e.uri = "data:application/vnd.ms-excel;base64,";
            e.base64 = function (s) {
                return window.btoa(unescape(encodeURIComponent(s)));
            };
            e.format = function (s, c) {
                return s.replace(/{(\w+)}/g, function (m, p) {
                    return c[p];
                });
            };
            e.ctx = {
                worksheet: name || "Worksheet",
                table: table
            };

            fullTemplate= e.template.head;

            if ( $.isArray(table) ) {
                for (i in table) {
                    //fullTemplate += e.template.sheet.head + "{worksheet" + i + "}" + e.template.sheet.tail;
                    fullTemplate += e.template.sheet.head + "Table" + i + "" + e.template.sheet.tail;
                }
            }

            fullTemplate += e.template.mid;

            if ( $.isArray(table) ) {
                for (i in table) {
                    fullTemplate += e.template.table.head + "{table" + i + "}" + e.template.table.tail;
                }
            }

            fullTemplate += e.template.foot;

            for (i in table) {
                e.ctx["table" + i] = table[i];
            }
            delete e.ctx.table;

            if (typeof msie !== "undefined" && msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer
            {
                if (typeof Blob !== "undefined") {
                    //use blobs if we can
                    fullTemplate = [fullTemplate];
                    //convert to array
                    var blob1 = new Blob(fullTemplate, { type: "text/html" });
                    window.navigator.msSaveBlob(blob1, getFileName(e.settings) );
                } else {
                    //otherwise use the iframe and save
                    //requires a blank iframe on page called txtArea1
                    txtArea1.document.open("text/html", "replace");
                    txtArea1.document.write(e.format(fullTemplate, e.ctx));
                    txtArea1.document.close();
                    txtArea1.focus();
                    sa = txtArea1.document.execCommand("SaveAs", true, getFileName(e.settings) );
                }

            } else {
                link = e.uri + e.base64(e.format(fullTemplate, e.ctx));
                a = document.createElement("a");
                a.download = getFileName(e.settings);
                a.href = link;

                document.body.appendChild(a);

                a.click();

                document.body.removeChild(a);
            }

            return true;
        }
    };

    function getFileName(settings) {
        return ( settings.filename ? settings.filename : "table2excel") + ".xls";
    }

    $.fn[ pluginName ] = function ( options ) {
        var e = this;
            e.each(function() {
                if ( !$.data( e, "plugin_" + pluginName ) ) {
                    $.data( e, "plugin_" + pluginName, new Plugin( this, options ) );
                }
            });

        // chain jQuery functions
        return e;
    };

})( jQuery, window, document );


$("#excel").click(function(){

                        $("#customers").table2excel({
                              exclude: ".noExl",
                        name: "Excel Document customers"
                        }); 

                         });

function printData()
{
   var divToPrint=document.getElementById("dataTable");
   newWin= window.open("");
   newWin.document.write(divToPrint.outerHTML);
   newWin.print();
   newWin.close();
}

$('#print').on('click',function(){
printData();
})
 </script>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.