This commit is contained in:
xuliangzhan
2020-05-07 11:44:40 +08:00
parent ea1c67b607
commit fea00b1ab1
5 changed files with 40 additions and 14 deletions

19
dist/index.common.js vendored

File diff suppressed because one or more lines are too long

17
dist/index.js vendored
View File

@@ -28,8 +28,7 @@
var _vxetable;
function getFooterCellValue($table, opts, rows, column) {
var cellValue = _xeUtils["default"].toString(rows[$table.$getColumnIndex(column)]);
var cellValue = rows[$table.$getColumnIndex(column)];
return cellValue;
}
@@ -57,18 +56,28 @@
footerFilterMethod = options.footerFilterMethod;
var colHead = {};
var footList = [];
var rowList = datas;
var sheetCols = [];
if (isHeader) {
columns.forEach(function (column) {
colHead[column.id] = _xeUtils["default"].toString(original ? column.property : column.getTitle());
colHead[column.id] = original ? column.property : column.getTitle();
sheetCols.push({
wpx: column.renderWidth
});
});
}
var rowList = datas.map(function (item) {
columns.forEach(function (column) {
var cellValue = item[column.id];
if (cellValue !== '' && !isNaN(cellValue)) {
item[column.id] = Number(cellValue);
}
});
return item;
});
if (isFooter) {
var _$table$getTableData = $table.getTableData(),
footerData = _$table$getTableData.footerData;

2
dist/index.min.js vendored
View File

@@ -1 +1 @@
!function(e,t){if("function"==typeof define&&define.amd)define("vxe-table-plugin-export-xlsx",["exports","xe-utils","xlsx"],t);else if("undefined"!=typeof exports)t(exports,require("xe-utils"),require("xlsx"));else{var o={exports:{}};t(o.exports,e.XEUtils,e.XLSX),e.VXETablePluginExportXLSX=o.exports.default}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(e,b,y){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}var w;function o(e){var i=e.$table,t=e.options,o=e.columns,n=e.datas,a=t.sheetName,r=t.isHeader,s=t.isFooter,l=t.original,u=t.message,f=t.footerFilterMethod,c={},d=[],p=n,v=[];if(r&&o.forEach(function(e){c[e.id]=b.default.toString(l?e.property:e.getTitle()),v.push({wpx:e.renderWidth})}),s){var x=i.getTableData().footerData;(f?x.filter(f):x).forEach(function(a){var r={};o.forEach(function(e){var t,o,n;r[e.id]=(t=i,o=a,n=e,b.default.toString(o[t.$getColumnIndex(n)]))}),d.push(r)})}var m=y.default.utils.book_new(),g=y.default.utils.json_to_sheet((r?[c]:[]).concat(p).concat(d),{skipHeader:!0});g["!cols"]=v,y.default.utils.book_append_sheet(m,g,a);var h=y.default.write(m,{bookType:"xlsx",bookSST:!1,type:"binary"});!function(e,t){if(window.Blob){var o=t.filename,n=t.type;if(navigator.msSaveBlob)navigator.msSaveBlob(e,"".concat(o,".").concat(n));else{var a=document.createElement("a");a.target="_blank",a.download="".concat(o,".").concat(n),a.href=URL.createObjectURL(e),document.body.appendChild(a),a.click(),document.body.removeChild(a)}}else console.error(w.t("vxe.error.notExp"))}(new Blob([function(e){for(var t=new ArrayBuffer(e.length),o=new Uint8Array(t),n=0;n!==e.length;++n)o[n]=255&e.charCodeAt(n);return t}(h)],{type:"application/octet-stream"}),t),!1!==u&&w.modal.message({message:w.t("vxe.table.expSuccess"),status:"success"})}function d(e){return e.replace(/^"/,"").replace(/"$/,"")}function n(e){var l=e.columns,u=e.options,t=e.file,f=e.$table,c=f._importResolve,o=new FileReader;o.onload=function(e){var t,o,n=y.default.read(e.target.result,{type:"binary"}),a=function(e){var t=e.split("\n"),n=[],a=[];if(t.length){var o=t.slice(1);t[0].split(",").map(d),o.forEach(function(e){if(e){var o={};e.split(",").forEach(function(e,t){n[t]&&(o[n[t]]=d(e))}),a.push(o)}})}return{fields:n,rows:a}}(y.default.utils.sheet_to_csv(n.Sheets.Sheet1)),r=a.fields,i=a.rows,s=(t=r,o=[],l.forEach(function(e){var t=e.property;t&&o.push(t)}),o.every(function(e){return t.includes(e)}));s?(f.createData(i).then(function(e){"append"===u.mode?f.insertAt(e,-1):f.reloadData(e)}),!1!==u.message&&w.modal.message({message:b.default.template(w.t("vxe.table.impSuccess"),[i.length]),status:"success"})):!1!==u.message&&w.modal.message({message:w.t("vxe.error.impFields"),status:"error"}),c&&(c(s),f._importResolve=null)},o.readAsBinaryString(t)}function a(e){if("xlsx"===e.options.type)return n(e),!1}function r(e){if("xlsx"===e.options.type)return o(e),!1}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginExportXLSX=void 0,b=t(b),y=t(y);var i={install:function(e){var t=e.interceptor;w=e,Object.assign(e.types,{xlsx:1}),t.mixin({"event.import":a,"event.export":r})}};e.VXETablePluginExportXLSX=i,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use(i);var s=i;e.default=s});
!function(e,t){if("function"==typeof define&&define.amd)define("vxe-table-plugin-export-xlsx",["exports","xe-utils","xlsx"],t);else if("undefined"!=typeof exports)t(exports,require("xe-utils"),require("xlsx"));else{var o={exports:{}};t(o.exports,e.XEUtils,e.XLSX),e.VXETablePluginExportXLSX=o.exports.default}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(e,d,g){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}var y;function o(e){var a=e.$table,t=e.options,r=e.columns,o=e.datas,n=t.sheetName,i=t.isHeader,s=t.isFooter,l=t.original,u=t.message,f=t.footerFilterMethod,c={},d=[],p=[];i&&r.forEach(function(e){c[e.id]=l?e.property:e.getTitle(),p.push({wpx:e.renderWidth})});var v=o.map(function(o){return r.forEach(function(e){var t=o[e.id];""===t||isNaN(t)||(o[e.id]=Number(t))}),o});if(s){var m=a.getTableData().footerData;(f?m.filter(f):m).forEach(function(o){var n={};r.forEach(function(e){var t;n[e.id]=(t=e,o[a.$getColumnIndex(t)])}),d.push(n)})}var x=g.default.utils.book_new(),h=g.default.utils.json_to_sheet((i?[c]:[]).concat(v).concat(d),{skipHeader:!0});h["!cols"]=p,g.default.utils.book_append_sheet(x,h,n);var b=g.default.write(x,{bookType:"xlsx",bookSST:!1,type:"binary"});!function(e,t){if(window.Blob){var o=t.filename,n=t.type;if(navigator.msSaveBlob)navigator.msSaveBlob(e,"".concat(o,".").concat(n));else{var a=document.createElement("a");a.target="_blank",a.download="".concat(o,".").concat(n),a.href=URL.createObjectURL(e),document.body.appendChild(a),a.click(),document.body.removeChild(a)}}else console.error(y.t("vxe.error.notExp"))}(new Blob([function(e){for(var t=new ArrayBuffer(e.length),o=new Uint8Array(t),n=0;n!==e.length;++n)o[n]=255&e.charCodeAt(n);return t}(b)],{type:"application/octet-stream"}),t),!1!==u&&y.modal.message({message:y.t("vxe.table.expSuccess"),status:"success"})}function p(e){return e.replace(/^"/,"").replace(/"$/,"")}function n(e){var l=e.columns,u=e.options,t=e.file,f=e.$table,c=f._importResolve,o=new FileReader;o.onload=function(e){var t,o,n=g.default.read(e.target.result,{type:"binary"}),a=function(e){var t=e.split("\n"),n=[],a=[];if(t.length){var o=t.slice(1);t[0].split(",").map(p),o.forEach(function(e){if(e){var o={};e.split(",").forEach(function(e,t){n[t]&&(o[n[t]]=p(e))}),a.push(o)}})}return{fields:n,rows:a}}(g.default.utils.sheet_to_csv(n.Sheets.Sheet1)),r=a.fields,i=a.rows,s=(t=r,o=[],l.forEach(function(e){var t=e.property;t&&o.push(t)}),o.every(function(e){return t.includes(e)}));s?(f.createData(i).then(function(e){"append"===u.mode?f.insertAt(e,-1):f.reloadData(e)}),!1!==u.message&&y.modal.message({message:d.default.template(y.t("vxe.table.impSuccess"),[i.length]),status:"success"})):!1!==u.message&&y.modal.message({message:y.t("vxe.error.impFields"),status:"error"}),c&&(c(s),f._importResolve=null)},o.readAsBinaryString(t)}function a(e){if("xlsx"===e.options.type)return n(e),!1}function r(e){if("xlsx"===e.options.type)return o(e),!1}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginExportXLSX=void 0,d=t(d),g=t(g);var i={install:function(e){var t=e.interceptor;y=e,Object.assign(e.types,{xlsx:1}),t.mixin({"event.import":a,"event.export":r})}};e.VXETablePluginExportXLSX=i,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use(i);var s=i;e.default=s});

View File

@@ -14,7 +14,7 @@ import XLSX from 'xlsx'
let _vxetable: typeof VXETable
function getFooterCellValue ($table: Table, opts: ExportOptons, rows: any[], column: ColumnConfig) {
const cellValue = XEUtils.toString(rows[$table.$getColumnIndex(column)])
const cellValue = rows[$table.$getColumnIndex(column)]
return cellValue
}
@@ -30,16 +30,24 @@ function exportXLSX (params: InterceptorExportParams) {
const { sheetName, isHeader, isFooter, original, message, footerFilterMethod } = options
const colHead: { [key: string]: any } = {}
const footList: { [key: string]: any }[] = []
const rowList = datas
const sheetCols: any[] = []
if (isHeader) {
columns.forEach((column) => {
colHead[column.id] = XEUtils.toString(original ? column.property : column.getTitle())
colHead[column.id] = original ? column.property : column.getTitle()
sheetCols.push({
wpx: column.renderWidth
})
})
}
const rowList = datas.map(item => {
columns.forEach((column) => {
const cellValue = item[column.id]
if (cellValue !== '' && !isNaN(cellValue)) {
item[column.id] = Number(cellValue)
}
})
return item
})
if (isFooter) {
const { footerData } = $table.getTableData()
const footers = footerFilterMethod ? footerData.filter(footerFilterMethod) : footerData

View File

@@ -1,6 +1,6 @@
{
"name": "vxe-table-plugin-export-xlsx",
"version": "1.3.5",
"version": "1.3.7",
"description": "基于 vxe-table 表格的增强插件,支持导出 xlsx 格式",
"scripts": {
"lib": "gulp build"