excel-preview.min.js 4.3 KB

1
  1. "use strict";function _toConsumableArray(t){if(Array.isArray(t)){for(var n=0,e=Array(t.length);n<t.length;n++)e[n]=t[n];return e}return Array.from(t)}!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(o){function e(t,n){this.element=t,this.settings=o.extend({},l,n),this._defaults=l,this._name=r,l=this.settings,this.init()}var r="excelPreview",l={height:500};function s(t,e){var n=t["!merges"];n&&n.forEach(function(t,n){!function(t,n){var e=Math.abs(t.e.r-t.s.r+1),r=Math.abs(t.e.c-t.s.c+1);n.bootstrapTable("mergeCells",{index:t.s.r,field:"column_"+t.s.c,rowspan:e,colspan:r})}(t,e)})}function f(t,n,e){var r=e.find("tbody").find("tr:eq("+t.r+")").find("td:eq("+t.c+")");if(n.font&&(r.css("fontWeight",n.font.bold?"bold":"normal"),n.font.color&&(n.font.color.rgb="FFFFFF"==n.font.color.rgb?"FF000000":n.font.color.rgb,r.css("color",CUSTOM_UTIL.rgbaToRgb(n.font.color.rgb)))),n.fill&&n.fill.fgColor&&r.css("backgroundColor",CUSTOM_UTIL.rgbaToRgb(n.fill.fgColor)),n.alignment&&n.alignment.horizontal){r.css("textAlign",{bottom:"left",center:"center",top:"right"}[n.alignment.horizontal])}}function a(t,n,e){var r=n.Sheets[t],i={height:l.height,showHeader:!1},a=function(t){var n=[],e=XLSX.utils.decode_range(t["!ref"]),r=void 0,i=e.s.r;for(r=e.s.c;r<=e.e.c;++r){var a=t[XLSX.utils.encode_cell({c:r,r:i})];n.push({field:"column_"+r,title:"column_"+r})}for(var o=[],l=e.s.r;l<=e.e.r;++l){for(var s={},c=e.s.c;c<=e.e.c;++c){a=t[XLSX.utils.encode_cell({c:c,r:l})];s["column_"+c]=XLSX.utils.format_cell(a)}o.push(s)}return{columns:n,data:o}}(r);o.extend(i,a),e.bootstrapTable(i),function(t,n){var e,r,i=t["!ref"].split(":"),a=i[0],o=i[1];for(var l in t)if(a<=l&&l<=o){var s=(e=l,r=a,r=CUSTOM_UTIL.splitRC(r),{r:(e=CUSTOM_UTIL.splitRC(e)).c-r.c,c:CUSTOM_UTIL.computeR(e.r,r.r)}),c=t[l].s;if(!c)return;f(s,c,n)}}(r,e),s(r,e)}function c(t,n,e){var r=t.html();e.find("li").removeClass("active"),t.parent("li").addClass("active");var i=o('<div class="table-container"><table></table></div>');e.next("div.tab-content").find(".tab-pane").empty().append(i),a(r,n,i.find("table"))}e.prototype={constructor:e,init:function(){var n=this;o(n.element).prev("input[type=file]").fileinput({language:"zh",showUpload:!1,dropZoneEnabled:!1,hideThumbnailContent:!0,showPreview:!1,allowedFileExtensions:["xlsx"],elErrorContainer:"#kartik-file-errors"}).on("change",function(t){n.excelPreview(t)})},excelPreview:function(t){return function(t,i){var n=t.target.files;if(0==n.length)return;var e=new FileReader;e.onload=function(t){try{var n=t.target.result,e=XLSX.read(n,{type:"binary",cellStyles:!0})}catch(t){return void console.log("文件类型不正确")}var r=e.SheetNames;!function(r,t,i){o(r).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(r).find(".nav-tabs"),e=o('<li role="presentation"><a role="tab" data-toggle="tab">'+t+"</a></li>");e.find("a").on("click",function(t){c(o(t.target),i,n)}),n.append(e),c(n.find(" li:first > a"),i,n),n.find("li:first").addClass("active")})}(i,r,e)},e.readAsBinaryString(n[0])}(t,this.element),o(this.element).prev("input[type=file]").fileinput("refresh"),!0}},o.fn[r]=function(n){return n=o.extend(!0,{},l,n),this.each(function(){var t=o(this);o.data(t,"plugin_"+r)||o.data(t,"plugin_"+r,new e(this,n))})},o.fn[r].defaults=l,o.fn[r].Plugin=e});var CUSTOM_UTIL=function(){function e(t){for(var n=[].concat(_toConsumableArray(t)),e=0,r=0;r<n.length;r++)e+=Math.pow(26,r)*(n[r].charCodeAt()-"A".charCodeAt());return e}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)),e=0;for(e=0;e<n.length&&!/^([1-9]*)$/.test(n[e]);e++);return e<n.length?{c:Number(t.substring(e)),r:t.substring(0,e)}:{r:0,c:t.substring(0,e)}},computeR:function(t,n){return e(t)-e(n)}}}();