zoukankan      html  css  js  c++  java
  • 关于通过angularJs将页面中的html table 导出生成excel

    直接上代码:

    <button class="btn btn-link" ng-click="exportToExcel('#table1')">
    <span class="glyphicon glyphicon-share"></span> 导出运单
    </button>


    table1为将要导出的table的Id。


    自定义导出factory:
    appModule.factory('Excel',function($window){
    var uri='data:application/vnd.ms-excel;base64,',
    template='<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><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>',
    base64=function(s){return $window.btoa(unescape(encodeURIComponent(s)));},
    format=function(s,c){return s.replace(/{(w+)}/g,function(m,p){return c[p];})};
    return {
    tableToExcel:function(tableId,worksheetName){
    var table=$(tableId),
    ctx={worksheet:worksheetName,table:table.html()},
    href=uri+base64(format(template,ctx));
    return href;
    }
    };
    })

    在table对应的controller里面添加方法:(调用之前要引用factory,$timeout)
    //导出excel
    $scope.exportToExcel=function(tableId){ // ex: '#my-table'
    $scope.exportHref=Excel.tableToExcel(tableId,'sheet name');
    $timeout(function(){location.href=$scope.exportHref;},100); // trigger download

    }





  • 相关阅读:
    HDOJ 2076 夹角有多大(题目已修改,注意读题)
    HDOJ 2058 The sum problem
    HDOJ 2099 整除的尾数
    HDOJ 2075 A|B?
    HDOJ 2071 Max Num
    HDOJ 2056 Rectangles
    HDOJ 2055 An easy problem
    HDOJ 2053 Switch Game
    HDOJ 2052 Picture
    P4139 上帝与集合的正确用法
  • 原文地址:https://www.cnblogs.com/gzhlt/p/5274702.html
Copyright © 2011-2022 走看看