123456789101112131415161718192021222324252627282930313233343536373839 |
- import Vue from 'vue';
- /**
- * @summary 将el-table导出成Excel,并可以选择不需要导出的列
- * @summary 该方法是对icore-sdk的handleDownloadExcelForElTable方法进行的扩展
- * @param id 表格对象的id(必须)
- * @param fileName Excel文件的名称(必须)
- * @param set 该参数接收对象,用来修改该方法的默认参数【
- * 1、noneClassName 不需要导出的列的类名(默认为:gn-TableDownloadExcel-none),el-table通过class-name设置列类名
- * 2、idName 新复制的表格对象的id(默认为:gj_handleDownloadExcelForElTable_obj)
- * 3、tableDocument 需要打印的表格元素所在的document对象(默认为:执行当前方法的页面的document对象)
- * 】
- */
- export const PEhandleDownloadExcelForElTable = (
- id,
- fileName,
- set = {}
- ) => {
- let noneClassName = set.noneClassName || 'gn-TableDownloadExcel-none';
- let idName = set.idName || 'gj_handleDownloadExcelForElTable_obj';
- let tableDocument = set.tableDocument || document;
- // 将上次生成的表格元素删除
- if (document.getElementById(idName)) {
- document.getElementById(idName).remove();
- }
- // 获取需要导出的表格元素
- let TableObj = tableDocument.getElementById(id).cloneNode(true);
- // 找出不需要导出的列并将其删除
- let noneArr = TableObj.getElementsByClassName(noneClassName);
- while (noneArr.length > 0) {
- noneArr[0].remove();
- }
- TableObj.id = idName;
- TableObj.style.display = 'none';
- // 将准备导出的表格元素添加到document中,以供handleDownloadExcelForElTable方法使用。
- document.body.appendChild(TableObj);
- // 开始导出生成Excel
- let vm = new Vue();
- vm.handleDownloadExcelForElTable(idName, fileName);
- }
|