excel-preview.min.js 3.9 KB

1
  1. "use strict";function _toConsumableArray(t){if(Array.isArray(t)){for(var n=0,r=Array(t.length);n<t.length;n++)r[n]=t[n];return r}return Array.from(t)}!function(o){var r="excelPreview",e={};function a(t,n){this.element=t,this.settings=o.extend({},e,n),this._defaults=e,this._name=r,this.init()}function l(t,r){var n=t["!merges"];n&&n.forEach(function(t,n){!function(t,n){var r=Math.abs(t.e.r-t.s.r+1),e=Math.abs(t.e.c-t.s.c+1);n.bootstrapTable("mergeCells",{index:t.s.r,field:"column_"+t.s.c,rowspan:r,colspan:e})}(t,r)})}function f(t,n,r){var e=r.find("tbody").find("tr:eq("+t.r+")").find("td:eq("+t.c+")");if(n.font&&(e.css("fontWeight",n.font.bold?"bold":"normal"),n.font.color&&(n.font.color.rgb="FFFFFF"==n.font.color.rgb?"FF000000":n.font.color.rgb,e.css("color",CUSTOM_UTIL.rgbaToRgb(n.font.color.rgb)))),n.fill&&n.fill.fgColor&&e.css("backgroundColor",CUSTOM_UTIL.rgbaToRgb(n.fill.fgColor)),n.alignment&&n.alignment.horizontal){e.css("textAlign",{bottom:"left",center:"center",top:"right"}[n.alignment.horizontal])}}function i(t,n,r){var e=n.Sheets[t],a={height:600,showHeader:!1},i=function(t){var n=[],r=XLSX.utils.decode_range(t["!ref"]),e=void 0,a=r.s.r;for(e=r.s.c;e<=r.e.c;++e){var i=t[XLSX.utils.encode_cell({c:e,r:a})];n.push({field:"column_"+e,title:"column_"+e})}for(var o=[],l=r.s.r;l<=r.e.r;++l){for(var s={},c=r.s.c;c<=r.e.c;++c){i=t[XLSX.utils.encode_cell({c:c,r:l})];s["column_"+c]=XLSX.utils.format_cell(i)}o.push(s)}return{columns:n,data:o}}(e);o.extend(a,i),r.bootstrapTable(a),function(t,n){var r,e,a=t["!ref"].split(":"),i=a[0],o=a[1];for(var l in t)if(i<=l&&l<=o){var s=(r=l,e=i,e=CUSTOM_UTIL.splitRC(e),{r:(r=CUSTOM_UTIL.splitRC(r)).c-e.c,c:CUSTOM_UTIL.computeR(r.r,e.r)}),c=t[l].s;if(!c)return;f(s,c,n)}}(e,r),l(e,r)}function s(t,n,r){var e=t.html();r.find("li").removeClass("active"),t.parent("li").addClass("active");var a=o('<div class="table-container"><table></table></div>');r.next("div.tab-content").find(".tab-pane").empty().append(a),i(e,n,a.find("table"))}a.prototype={init:function(){var n=this;o(n.element).prev("input[type=file]").on("change",function(t){n.excelPreview(t),o(this).val("")})},excelPreview:function(t){return function(t,a){var n=t.target.files,r=new FileReader;r.onload=function(t){try{var n=t.target.result,r=XLSX.read(n,{type:"binary",cellStyles:!0})}catch(t){return void console.log("文件类型不正确")}var e=r.SheetNames;!function(e,t,a){o(e).empty().append('<div class="box box-default">\n <div class="excel-box">\n <ul class="nav nav-tabs" role="tablist">\n </ul>\n <div class="tab-content" >\n <div role="tabpanel" class="tab-pane active">\n \n </div>\n </div>\n </div>\n </div>'),t.forEach(function(t){var n=o(e).find(".nav-tabs"),r=o('<li role="presentation"><a role="tab" data-toggle="tab">'+t+"</a></li>");r.find("a").on("click",function(t){s(o(t.target),a,n)}),n.append(r),s(n.find(" li:first > a"),a,n),n.find("li:first").addClass("active")})}(a,e,r)},r.readAsBinaryString(n[0])}(t,this.element),!0}},o.fn[r]=function(t){var n=this;return n.each(function(){o.data(n,"plugin_"+r)||o.data(n,"plugin_"+r,new a(this,t))}),n}}(jQuery,window,document);var CUSTOM_UTIL=function(){function r(t){for(var n=[].concat(_toConsumableArray(t)),r=0,e=0;e<n.length;e++)r+=Math.pow(26,e)*(n[e].charCodeAt()-"A".charCodeAt());return r}return{rgbaToRgb:function(t){if(!t||!/^([0-9a-fA-f]{8})$/.test(t))return"rgba(255, 255, 255, 0)";var n=parseInt(t.substring(0,2),16);return"rgba("+parseInt(t.substring(2,4),16)+","+parseInt(t.substring(4,6),16)+","+parseInt(t.substring(6,8),16)+","+n+")"},splitRC:function(t){var n=[].concat(_toConsumableArray(t)),r=0;for(r=0;r<n.length&&!/^([1-9]*)$/.test(n[r]);r++);return r<n.length?{c:Number(t.substring(r)),r:t.substring(0,r)}:{r:0,c:t.substring(0,r)}},computeR:function(t,n){return r(t)-r(n)}}}();