mirror of
https://gitee.com/x-extends/vxe-table-plugin-export-xlsx.git
synced 2026-01-21 05:21:33 +08:00
优化导出
This commit is contained in:
14
dist/index.common.js
vendored
14
dist/index.common.js
vendored
File diff suppressed because one or more lines are too long
12
dist/index.js
vendored
12
dist/index.js
vendored
@@ -54,7 +54,7 @@
|
||||
|
||||
if (isHeader) {
|
||||
columns.forEach(function (column) {
|
||||
colHead[column.id] = original ? column.property : column.getTitle();
|
||||
colHead[column.id] = (original ? column.property : column.getTitle()) || '';
|
||||
});
|
||||
}
|
||||
|
||||
@@ -93,9 +93,9 @@
|
||||
type: 'application/octet-stream'
|
||||
}); // 保存导出
|
||||
|
||||
download(blob, options);
|
||||
downloadFile(blob, options);
|
||||
|
||||
if (message) {
|
||||
if (message !== false) {
|
||||
$table.$XModal.message({
|
||||
message: i18n('vxe.table.expSuccess'),
|
||||
status: 'success'
|
||||
@@ -103,7 +103,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
function download(blob, options) {
|
||||
function downloadFile(blob, options) {
|
||||
if (window.Blob) {
|
||||
var filename = options.filename,
|
||||
type = options.type;
|
||||
@@ -200,13 +200,13 @@
|
||||
}
|
||||
});
|
||||
|
||||
if (options.message) {
|
||||
if (options.message !== false) {
|
||||
$table.$XModal.message({
|
||||
message: i18n('vxe.table.impSuccess'),
|
||||
status: 'success'
|
||||
});
|
||||
}
|
||||
} else if (options.message) {
|
||||
} else if (options.message !== false) {
|
||||
$table.$XModal.message({
|
||||
message: i18n('vxe.error.impFields'),
|
||||
status: 'error'
|
||||
|
||||
2
dist/index.min.js
vendored
2
dist/index.min.js
vendored
@@ -1 +1 @@
|
||||
!function(e,t){if("function"==typeof define&&define.amd)define("vxe-table-plugin-export",["exports","xe-utils","xlsx"],t);else if("undefined"!=typeof exports)t(exports,require("xe-utils"),require("xlsx"));else{var r={exports:{}};t(r.exports,e.XEUtils,e.XLSX),e.VXETablePluginExport=r.exports.default}}(this,function(e,g,m){"use strict";var t;function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function r(e){var n=e.$table,t=e.options,o=e.columns,r=e.datas,a=t.sheetName,i=t.type,s=t.isHeader,u=t.isFooter,l=t.original,c=t.message,f=t.footerFilterMethod,p={},d=[];s&&o.forEach(function(e){p[e.id]=l?e.property:e.getTitle()});var v=r.map(function(t){var r={};return o.forEach(function(e){r[e.id]=l?g.default.get(t,e.property):t[e.id]}),r});if(u){var b=n.footerData;(f?b.filter(f):b).forEach(function(t){var r={};o.forEach(function(e){r[e.id]=t[n.getColumnIndex(e)]||""}),d.push(r)})}var h=m.utils.book_new(),x=m.utils.json_to_sheet((s?[p]:[]).concat(v).concat(d),{skipHeader:!0});m.utils.book_append_sheet(h,x,a);var y=m.write(h,{bookType:i,bookSST:!1,type:"binary"});!function(e,t){if(window.Blob){var r=t.filename,n=t.type;if(navigator.msSaveBlob)navigator.msSaveBlob(e,r);else{var o=document.createElement("a");o.target="_blank",o.download="".concat(r,".").concat(n),o.href=URL.createObjectURL(e),document.body.appendChild(o),o.click(),document.body.removeChild(o)}}else console.error(w("vxe.error.notExp"))}(new Blob([function(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0;n!==e.length;++n)r[n]=255&e.charCodeAt(n);return t}(y)],{type:"application/octet-stream"}),t),c&&n.$XModal.message({message:w("vxe.table.expSuccess"),status:"success"})}function c(e){return e.replace(/^"/,"").replace(/"$/,"")}function n(e){var i=e.$table,s=e.columns,u=e.options,t=e.file,l=i._importCallback,r=new FileReader;r.onload=function(e){var t=m.read(e.target.result,{type:"binary"}),r=function(e,t){var r=t.split("\n"),n=[],o=[];if(r.length){var a=r.slice(1);r[0].split(",").forEach(function(e){var t=c(e);t&&n.push(t)}),a.forEach(function(e){if(e){var r={};e.split(",").forEach(function(e,t){r[n[t]]=c(e)}),o.push(r)}})}return{fields:n,rows:o}}(0,m.utils.sheet_to_csv(t.Sheets.Sheet1)),n=r.fields,o=r.rows,a=function(e,t){var r=[];return e.forEach(function(e){var t=e.property;t&&r.push(t)}),r.every(function(e){return t.includes(e)})}(s,n);a?(i.createData(o).then(function(e){"append"===u.mode?i.insertAt(e,-1):i.reloadData(e)}),u.message&&i.$XModal.message({message:w("vxe.table.impSuccess"),status:"success"})):u.message&&i.$XModal.message({message:w("vxe.error.impFields"),status:"error"}),l&&l(a)},r.readAsBinaryString(t)}function o(e){switch(e.options.type){case"xlsx":return n(e),!1}}function a(e){switch(e.options.type){case"xlsx":return r(e),!1}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginExport=void 0,g=(t=g)&&t.__esModule?t:{default:t},m=function(e){if(e&&e.__esModule)return e;var t=i();if(t&&t.has(e))return t.get(e);var r={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}}r.default=e,t&&t.set(e,r);return r}(m);var s={install:function(e){Object.assign(e.types,{xlsx:1}),e.interceptor.mixin({"event.import":o,"event.export":a}),s.t=e.t}};function w(e){if(s.t)return s.t(e)}e.VXETablePluginExport=s,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use(s);var u=s;e.default=u});
|
||||
!function(e,t){if("function"==typeof define&&define.amd)define("vxe-table-plugin-export",["exports","xe-utils","xlsx"],t);else if("undefined"!=typeof exports)t(exports,require("xe-utils"),require("xlsx"));else{var r={exports:{}};t(r.exports,e.XEUtils,e.XLSX),e.VXETablePluginExport=r.exports.default}}(this,function(e,g,m){"use strict";var t;function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function r(e){var n=e.$table,t=e.options,o=e.columns,r=e.datas,a=t.sheetName,i=t.type,s=t.isHeader,u=t.isFooter,l=t.original,c=t.message,f=t.footerFilterMethod,p={},d=[];s&&o.forEach(function(e){p[e.id]=(l?e.property:e.getTitle())||""});var v=r.map(function(t){var r={};return o.forEach(function(e){r[e.id]=l?g.default.get(t,e.property):t[e.id]}),r});if(u){var b=n.footerData;(f?b.filter(f):b).forEach(function(t){var r={};o.forEach(function(e){r[e.id]=t[n.getColumnIndex(e)]||""}),d.push(r)})}var h=m.utils.book_new(),x=m.utils.json_to_sheet((s?[p]:[]).concat(v).concat(d),{skipHeader:!0});m.utils.book_append_sheet(h,x,a);var y=m.write(h,{bookType:i,bookSST:!1,type:"binary"});!function(e,t){if(window.Blob){var r=t.filename,n=t.type;if(navigator.msSaveBlob)navigator.msSaveBlob(e,r);else{var o=document.createElement("a");o.target="_blank",o.download="".concat(r,".").concat(n),o.href=URL.createObjectURL(e),document.body.appendChild(o),o.click(),document.body.removeChild(o)}}else console.error(w("vxe.error.notExp"))}(new Blob([function(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0;n!==e.length;++n)r[n]=255&e.charCodeAt(n);return t}(y)],{type:"application/octet-stream"}),t),!1!==c&&n.$XModal.message({message:w("vxe.table.expSuccess"),status:"success"})}function c(e){return e.replace(/^"/,"").replace(/"$/,"")}function n(e){var i=e.$table,s=e.columns,u=e.options,t=e.file,l=i._importCallback,r=new FileReader;r.onload=function(e){var t=m.read(e.target.result,{type:"binary"}),r=function(e,t){var r=t.split("\n"),n=[],o=[];if(r.length){var a=r.slice(1);r[0].split(",").forEach(function(e){var t=c(e);t&&n.push(t)}),a.forEach(function(e){if(e){var r={};e.split(",").forEach(function(e,t){r[n[t]]=c(e)}),o.push(r)}})}return{fields:n,rows:o}}(0,m.utils.sheet_to_csv(t.Sheets.Sheet1)),n=r.fields,o=r.rows,a=function(e,t){var r=[];return e.forEach(function(e){var t=e.property;t&&r.push(t)}),r.every(function(e){return t.includes(e)})}(s,n);a?(i.createData(o).then(function(e){"append"===u.mode?i.insertAt(e,-1):i.reloadData(e)}),!1!==u.message&&i.$XModal.message({message:w("vxe.table.impSuccess"),status:"success"})):!1!==u.message&&i.$XModal.message({message:w("vxe.error.impFields"),status:"error"}),l&&l(a)},r.readAsBinaryString(t)}function o(e){switch(e.options.type){case"xlsx":return n(e),!1}}function a(e){switch(e.options.type){case"xlsx":return r(e),!1}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginExport=void 0,g=(t=g)&&t.__esModule?t:{default:t},m=function(e){if(e&&e.__esModule)return e;var t=i();if(t&&t.has(e))return t.get(e);var r={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}}r.default=e,t&&t.set(e,r);return r}(m);var s={install:function(e){Object.assign(e.types,{xlsx:1}),e.interceptor.mixin({"event.import":o,"event.export":a}),s.t=e.t}};function w(e){if(s.t)return s.t(e)}e.VXETablePluginExport=s,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use(s);var u=s;e.default=u});
|
||||
12
index.ts
12
index.ts
@@ -16,7 +16,7 @@ function exportXLSX(params: any) {
|
||||
const footList: any[] = []
|
||||
if (isHeader) {
|
||||
columns.forEach((column: any) => {
|
||||
colHead[column.id] = original ? column.property : column.getTitle()
|
||||
colHead[column.id] = (original ? column.property : column.getTitle()) || ''
|
||||
})
|
||||
}
|
||||
const rowList = datas.map((row: any) => {
|
||||
@@ -44,13 +44,13 @@ function exportXLSX(params: any) {
|
||||
const wbout = XLSX.write(book, { bookType: type, bookSST: false, type: 'binary' })
|
||||
const blob = new Blob([toBuffer(wbout)], { type: 'application/octet-stream' })
|
||||
// 保存导出
|
||||
download(blob, options)
|
||||
if (message) {
|
||||
downloadFile(blob, options)
|
||||
if (message !== false) {
|
||||
$table.$XModal.message({ message: i18n('vxe.table.expSuccess'), status: 'success' })
|
||||
}
|
||||
}
|
||||
|
||||
function download(blob: Blob, options: any) {
|
||||
function downloadFile(blob: Blob, options: any) {
|
||||
if (window.Blob) {
|
||||
const { filename, type } = options
|
||||
if (navigator.msSaveBlob) {
|
||||
@@ -128,10 +128,10 @@ function importXLSX(params: any) {
|
||||
$table.reloadData(data)
|
||||
}
|
||||
})
|
||||
if (options.message) {
|
||||
if (options.message !== false) {
|
||||
$table.$XModal.message({ message: i18n('vxe.table.impSuccess'), status: 'success' })
|
||||
}
|
||||
} else if (options.message) {
|
||||
} else if (options.message !== false) {
|
||||
$table.$XModal.message({ message: i18n('vxe.error.impFields'), status: 'error' })
|
||||
}
|
||||
if (_importCallback) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vxe-table-plugin-export",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9",
|
||||
"description": "基于 vxe-table 表格的增强插件,支持导出 xlsx 等格式",
|
||||
"scripts": {
|
||||
"lib": "gulp build"
|
||||
|
||||
Reference in New Issue
Block a user