elementplus下载表格为excel格式

news/2024/7/21 6:06:21 标签: excel, vue.js, 前端, elementui
  1. 安装xlsx
npm i --save https://cdn.sheetjs.com/xlsx-0.20.0/xlsx-0.20.0.tgz
  1. 引入xlsx并使用
import XLSX from 'xlsx';
const tableRef = ref<any>(null);
// 导出为 Excel
const exportToExcel = () => {
  // 获取 el-table 的引用
  tableRef.value = tableRef.value || document.querySelector('.el-table');

  // 将 el-table 数据转换为二维数组
  const dataArray = [];
  const headers: any = [];
  tableRef.value.querySelectorAll('.el-table__header-wrapper th').forEach((th: any) => {
    headers.push(th.textContent.trim());
  });
  dataArray.push(headers);

  tableRef.value.querySelectorAll('.el-table__body-wrapper tbody tr').forEach((row: any) => {
    const rowData: any = [];
    row.querySelectorAll('td').forEach((cell: any) => {
      rowData.push(cell.textContent.trim());
    });
    dataArray.push(rowData);
  });


  // 创建一个新的工作簿
  const workbook = XLSX.utils.book_new();

  // 创建一个新的工作表
  const worksheet = XLSX.utils.aoa_to_sheet(dataArray);

  // 将工作表添加到工作簿
  XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

  // 将工作簿保存为 Excel 文件
  XLSX.writeFile(workbook, '学科分数分布统计.xlsx');
};

补充:html

<template>
  <div class="tableList">
    <p>统计</p>
    <el-button @click="exportToExcel">导出为Excel</el-button>
    <el-table :data="tableData" border :header-cell-style="headerCellStyle" stripe :cell-style="cellStyle">
      <el-table-column v-for="column in tableColumns" :key="column.prop" :prop="column.prop" :label="column.label">
      </el-table-column>
    </el-table>
  </div>
</template>

表格样式设计

const headerCellStyle = {
  'background-color': '#bdd7ff',
  'borderColor': '#fff',
  'font-weight': 'normal',
  'text-align': 'center',
  'height': '60px'
};

const cellStyle = {
  'borderColor': '#fff',
  'text-align': 'center'
};

http://www.niftyadmin.cn/n/5071456.html

相关文章

Windows安装Node.js

1、Node.js介绍 ①、Node.js简介 Node.js是一个开源的、跨平台的JavaScript运行环境&#xff0c;它允许开发者使用JavaScript语言来构建高性能的网络应用程序和服务器端应用。Node.js的核心特点包括&#xff1a; 1. 事件驱动: Node.js采用了事件驱动的编程模型&#xff0c;通…

在并发环境下如何处理脏读,幻读,不可重复读

目录 1.对脏读&#xff0c;幻读&#xff0c;不可重复读的理解 2.数据库事务隔离级别 3.如何避免脏读&#xff0c;幻读&#xff0c;不可重复读 3.1如何避免脏读 3.2对乐观锁的理解 3.3如何避免幻读 3.4如何避免可重复读 3.5总结 1.对脏读&#xff0c;幻读&#xff0c;不…

《DevOps 精要:业务视角》- 读书笔记(二)

DevOps 精要:业务视角&#xff08;二&#xff09; 第2章 基础2.1 精益生产2.1.1 关键事实2.1.2 挑战 2.2 敏捷2.2.1 关键事实2.2.2 挑战 第2章 基础 2.1 精益生产 2.1.1 关键事实 正如1.2节提到的&#xff0c;DevOps非常依赖于精益生产的原则与实践。有些人甚至相信&#xf…

010:连续跌3天,同时这三天收盘价都在20日均线下,第四天上涨的概率--以京泉华为例

对于《连续跌三天&#xff0c;压第四天上涨的盈利计算》&#xff0c;我们可以继续优化这个策略&#xff0c;增加条件&#xff1a;同时三天都收盘在20日均线下。 因为我们上一篇《获取20日均线数据到excel表中》获得了20日均线数据&#xff0c;我们可以利用均线数据来编写新的脚…

老卫带你学---leetcode刷题(76. 最小覆盖子串)

76. 最小覆盖子串 问题&#xff1a; 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 “” 。 注意&#xff1a; 对于 t 中重复字符&#xff0c;我们寻找的子字符串中该字符数量必…

互联网通信的核心协议HTTP和HTTPS

HTTP&#xff1a;超文本传输协议 HTTP&#xff0c;全称为超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff09;&#xff0c;是一种用于在Web上传输超文本文档的协议。它是Web通信的基础&#xff0c;允许浏览器与Web服务器之间的数据交换。HTTP使用了经典的客户…

MQ - 37 云原生:MQ的分层存储架构的实现方案

文章目录 导图概述什么是分层存储分层存储的应用和局限实现分层存储的技术思考选择远程文件系统生产性能优化消费性能优化方案一方案二隔离性和回滚隔离性回滚业界主流消息队列的架构分析RocektMQ 多级存储的实现分析Kakfa 分层存储的实现分析为什么 RocketMQ 使用准实时的方式…

由于导线材质不同绕组直流电阻不平衡率超标

实测证明&#xff0c; 有的变压器绕组的直流电阻偏大&#xff0c; 有的偏差较大&#xff0c; 其主要原因是某些导线的铜和银的含量低于国家标准规定限额。 有时即使采用合格的导线&#xff0c; 但由于导线截面尺寸偏差不同&#xff0c; 也可以导致绕组直流电阻不平衡率超标。  …