• 基于xlsx.js的导入导出插件 lay-excel , 操作更方便 功能更强大


    一. 介绍插件

    话不多说, 上图

    功能演示地址: http://excel.wj2015.com

    文档地址: 概览 · LAY-EXCEL 插件文档

     

    二. 初始准备

    1. 创建个vue2空项目(具体步骤省略 详情看上一篇)

    2. 安装依赖

    npm i element-ui

    npm i lay-excel

    3. main.js导入UI插件

     import ElementUI from 'element-ui';

    import 'element-ui/lib/theme-chalk/index.css';

    Vue.use(ElementUI);

    三. 导入导出demo 

    注释齐全 复制即可拿来用, 若功能不满足, 可查看文档↓

    导出excel样式设置

    时间处理

    1. <template>
    2. <div class="app-container">
    3. <input
    4. hidden
    5. ref="excel-upload-input"
    6. class="excel-upload-input"
    7. type="file"
    8. accept=".xlsx, .xls"
    9. @change="handleClick"
    10. />
    11. <el-button type="primary" @click="importExcel">导入</el-button>
    12. <el-table
    13. :data="tableData"
    14. border
    15. highlight-current-row
    16. style="width: 100%; margin-top: 20px"
    17. >
    18. <el-table-column prop="username" label="姓名" width="180">
    19. </el-table-column>
    20. <el-table-column prop="mobile" label="手机号" width="180">
    21. </el-table-column>
    22. <el-table-column prop="timeOfEntry" label="入职日期" width="180">
    23. </el-table-column>
    24. <el-table-column prop="correctionTime" label="转正日期" width="180">
    25. </el-table-column>
    26. <el-table-column prop="workNumber" label="工号" width="180">
    27. </el-table-column>
    28. <el-table-column prop="deptName" label="部门"> </el-table-column>
    29. </el-table>
    30. <el-button type="primary" @click="exportExcel">导出</el-button>
    31. </div>
    32. </template>
    33. <script>
    34. import LAY_EXCEL from "lay-excel";
    35. export default {
    36. data() {
    37. return {
    38. tableData: [],
    39. tableHeader: [],
    40. };
    41. },
    42. methods: {
    43. // 文件框值更新事件
    44. handleClick(e) {
    45. try {
    46. // 获取导入的文件
    47. const files = e.target.files;
    48. const rawFile = files[0];
    49. if (!rawFile) return;
    50. // 插件的导入方法
    51. LAY_EXCEL.importExcel(files, {}, (data) => {
    52. console.log("导入JSON:" + JSON.stringify(data));
    53. // 列名转英文方法
    54. data = LAY_EXCEL.filterImportData(data, {
    55. username: "A", //梳理时 要确保字段名对应上
    56. mobile: "B",
    57. timeOfEntry: "C",
    58. correctionTime: "D",
    59. workNumber: "E",
    60. deptName: "F",
    61. });
    62. console.log("梳理后JSON:" + JSON.stringify(data));
    63. /* 这里要注意 xlsx文件默认的第一页名字叫 Sheet1 , 一般这么写 data[0].Sheet1
    64. 如果改过,比如SheetJS , 这里需要对应修改 data[0].SheetJS
    65. */
    66. //获取表格数据
    67. let Sheet1 = data[0].SheetJS;
    68. console.log(Sheet1);
    69. for (let i = 0; i < Sheet1.length; i++) {
    70. if (i == 0) {
    71. // 取到第一行的列头
    72. this.tableHeader = Object.values(Sheet1[0]);
    73. //跳过列头
    74. continue;
    75. }
    76. this.tableData.push(Sheet1[i]); //新增一条
    77. }
    78. // this.exportConfig.value = false;
    79. if (this.tableData.length > 0) {
    80. this.$message.success("导入成功!");
    81. }
    82. });
    83. } catch (e) {
    84. this.$Message.error("导入错误: " + e.message);
    85. }
    86. },
    87. // 导入
    88. importExcel() {
    89. this.$refs["excel-upload-input"].click();
    90. },
    91. // 导出
    92. exportExcel() {
    93. if (this.tableData.length === 0)
    94. return this.$message.error("无数据可导出");
    95. // 姓名 手机号 入职日期 转正日期 工号 部门
    96. const data = [ ...this.tableData ];
    97. console.log(data);
    98. data.unshift({
    99. username: "姓名",
    100. mobile: "手机号",
    101. timeOfEntry: "入职日期",
    102. correctionTime: "转正日期",
    103. workNumber: "工号",
    104. deptName: "部门",
    105. });
    106. // 执行导出函数,系统会弹出弹框
    107. LAY_EXCEL.exportExcel(
    108. {
    109. sheet1: data,
    110. },
    111. "导出接口数据.xlsx",
    112. "xlsx"
    113. );
    114. this.$message.error("导出成功");
    115. },
    116. },
    117. };
    118. </script>

     

  • 相关阅读:
    2023计算机毕业设计SSM最新选题之java书籍审阅系统dmp8d
    【Redis】Redis如何保证和MySQL数据库的数据一致性(带你一文了解)
    每日OJ题_优先级队列_堆②_力扣703. 数据流中的第 K 大元素
    【Java课堂】String类
    共轭梯度法
    嵌入式设备时间同步(校时)
    xxxxx
    商业智能BI业务分析思维:现金流量风控分析(一)营运资金风险
    跨境电商网站建设 三大跨境品牌厂商综合评测
    【C++】模板进阶
  • 原文地址:https://blog.csdn.net/qq_18816201/article/details/125490667