• 通用导出el-table表格内容的方法


    目录

    一、方法说明

    二、需要的引用

    三、具体代码展示


    一、方法说明

            本方法可以根据id(表格ID)、title(导出表格标题)、delcol(移除列名称)等属性设置进行导出,会自动移除多选框以及相关button,只导出表格内容。

    二、需要的引用

            import FileSaver from "file-saver";

            import XLSX from "xlsx";

    三、具体代码展示

    1. function exportDelCols(id, title, delcol) {
    2. // 获取当前table的dom,必须要用clone,如果不可隆的话会导致你现有表中的表格发生改变
    3. let tableDom = document.querySelector("#" + id).cloneNode(true);
    4. let tableHeader = tableDom.querySelector('.el-table__header-wrapper');
    5. let tableBody = tableDom.querySelector('.el-table__body');
    6. tableHeader.childNodes[0].append(tableBody.childNodes[1]);
    7. let headerDom = tableHeader.childNodes[0].querySelectorAll('th');
    8. // 移除左侧checkbox的节点
    9. var checks = headerDom[0].querySelectorAll('.el-checkbox');
    10. if (checks.length > 0) {
    11. headerDom[0].remove();
    12. }
    13. for (let key in headerDom) {
    14. if (headerDom[key].innerText === delcol) {
    15. headerDom[key].remove();
    16. }
    17. }
    18. // 清理掉checkbox 和操作的button
    19. let tableList = tableHeader.childNodes[0].childNodes[2].querySelectorAll('td');
    20. for (let key = 0; key < tableList.length; key++) {
    21. if (tableList[key].querySelectorAll('.el-checkbox').length > 0 || tableList[key].querySelectorAll('.el-button').length > 0) {
    22. tableList[key].remove();
    23. }
    24. }
    25. // 获取web的节点
    26. let webBook = XLSX.utils.table_to_book(tableHeader);
    27. // 把当前的book节点写入XLSX中
    28. let webOut = XLSX.write(webBook, {
    29. bookType: 'xlsx',
    30. bookSST: true,
    31. type: 'array'
    32. });
    33. try {
    34. FileSaver.saveAs(new Blob([webOut], {
    35. type: 'application/octet-stream'
    36. }), title + '.xlsx');
    37. } catch (e) {
    38. if (typeof console !== 'undefined') console.log(e, webOut)
    39. }
    40. return webOut
    41. }

  • 相关阅读:
    选择排序--python(详解)
    记录一次线上内存溢出排查详细过程
    STM32产品介绍
    TypeError: bases must be types
    【菜菜研科研小BUG记录】【Latex写作方面1】不定期更新
    交叉编译详解
    PHP的四层架构
    【pytorch】torchvion.transforms.RandomResizedCrop
    始祖双碳新闻 | 2022年8月22日碳中和行业早知道
    SQL基础语句
  • 原文地址:https://blog.csdn.net/qq_29384789/article/details/126600693