diff --git a/public/static/plugs/jquery/excel.xlsx.js b/public/static/plugs/jquery/excel.xlsx.js
index d03cb01aa..a1b3b07ba 100644
--- a/public/static/plugs/jquery/excel.xlsx.js
+++ b/public/static/plugs/jquery/excel.xlsx.js
@@ -17,7 +17,7 @@ define(['xlsx'], function () {
});
};
- excel.load = function (url, data, done, filename, method) {
+ excel.load = function (url, data, done, name, method) {
var alldata = [];
var loading = $.msg.loading('正在加载 ,完成 0%');
nextPage(1, 1);
@@ -26,7 +26,7 @@ define(['xlsx'], function () {
if (curPage > maxPage) {
if (typeof done === 'function') {
if ((this.result = done(alldata)) !== false) {
- excel(this.result, filename || '文件下载.xlsx');
+ excel(this.result, name || '文件下载.xlsx');
} else {
console.log('格式化函数返回`false`,已终止数据导出操作', alldata, this.result);
}
@@ -45,6 +45,36 @@ define(['xlsx'], function () {
}, false);
}
}
- }
+ };
+
+ excel.read = function (file) {
+ return (function (defer, reader, loaded) {
+ defer = jQuery.Deferred(), reader = new FileReader();
+ reader.onload = function (event) {
+ var work = XLSX.read(event.target.result, {type: 'binary'});
+ for (var sheet in work.Sheets) if (work.Sheets.hasOwnProperty(sheet)) {
+ var object = {}, data = work.Sheets[sheet], keys = '', atrs = '';
+ for (keys in data) if ((atrs = keys.match(/^([A-Z]+)(\d+)$/i))) {
+ object[atrs[2]] = object[atrs[2]] || {};
+ object[atrs[2]][atrs[1]] = data[keys].v;
+ }
+ return jQuery.msg.close(loaded), defer.resolve(object);
+ }
+ jQuery.msg.close(loaded)
+ };
+ reader.onerror = function () {
+ defer.reject('读取文件失败');
+ };
+ reader.onprogress = function (event) {
+ defer.notify((event.loaded / event.total).toFixed(4) * 100);
+ };
+ if (typeof file === 'object') {
+ return reader.readAsBinaryString(file), defer;
+ } else {
+ return defer;
+ }
+ })();
+ };
+
return excel;
});
\ No newline at end of file