前端做excel的录入解析,将excel的数据传给后端,显示在页面上。

2023-11-19

具体的流程如图所示:

1.点击excel录入按钮 

2.打开弹框

 3.点击上传按钮,会自动打开计算机本地文件,选择想上传的文件,点击打开

 4.会将excel的数据解析成一个表格,可以在表格中做删除操作,点击确定

 5.将excel的人员与系统中的人员做一个对比,若不在系统中,则无法录入。

 6.最后将刚刚加入的人,和以前本来就在表中的人,一起显示在页面上。

 

 其中,具体要介绍的是本地的excel表格的数据是如何解析渲染在网页中。确保excel的数据一定是有姓名和出生年月,否则作废不渲染。

下载安装xlsx并引入

npm i xlsx -S

import * as xlsx from "xlsx";

1.首先写一个文件上传的按钮

 <input class="filePrew" type="file" ref="file"
                    accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
                    id="file" @change="getFileSize"/>

2.在方法中写:在这一步就将文件获取,并判断excel中是否包含了姓名和出生年月,同时自己要定义一个默认的表头

 tableArr: [
        { label: "姓名", prop: "xm", index: "1", width: "60px" },
        { label: "出生年月", prop: "csnyStr", index: "2",width: "80px" },
        { label: "任免类型", prop: "RmType", index: "3" , width: "100px"},
        { label: "拟任职", prop: "nrz", index: "4", width: "100px" },
        { label: "拟免职", prop: "nmz", index: "5",width: "100px"},
        { label: "任免后职务层次", prop: "SetZwjb", index: "6" },
        { label: "任免后公务员职级", prop: "rmhgwyzj", index: "7" }
      ],
getFileSize(v) {
      if (v.target.value) {
        this.file = v.target.files[0];
        // 读取 Excel 文件
        let file = this.file;
        file = new Blob([file]);
        console.log(file);
        const fileReader = new FileReader();
        fileReader.readAsArrayBuffer(file);
        fileReader.onload = () => {
          // 将文件转换为二进制数据
          const data = new Uint8Array(fileReader.result); // 使用 SheetJS 解析 Excel 文件
          const workbook = xlsx.read(data, { type: "array" }); // 获取第一个工作表
          const worksheet = workbook.Sheets[workbook.SheetNames[0]]; // 将工作表数据转换为 JSON 格式 // 分析对应关系
          const jsonData = xlsx.utils.sheet_to_json(worksheet, { header: 1 }); // 表头序号 0 1 2 3
          const columnNames = Object.keys(jsonData[0]);
          const columnKeyName = jsonData[0];
          if (
            columnKeyName.indexOf("姓名") >= 0 &&
            columnKeyName.indexOf("出生年月") >= 0
          ) {
            for (let i = 1; i < jsonData.length; i++) {
              let person = {};
              for (let str in this.tableArr) {
                let col = this.tableArr[str].label;
                let index = columnKeyName.indexOf(col);
                if (index >= 0) {
                  let val = jsonData[i][index];
                  person[this.tableArr[str].prop] = val;
                }
              }
              this.tabelDataExcel.push(person);
            }
            console.log(this.tabelDataExcel);
          }
          // 清空上传列表
          v.target.value = "";
          console.log("jsonData:", jsonData);
          console.log("columnNames:", columnNames);
          console.log("columnKeyName:", columnKeyName);
        };
      }
    },

3.这样我们拿到了Excel的值后,就可以将每行数据传递给后端做处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端做excel的录入解析,将excel的数据传给后端,显示在页面上。 的相关文章

  • VBA FreeLibrary 不卸载 DLL

    当我使用完一个 DLL 文件后 我需要删除它 代码完成后清理 我尝试在 Excel VBA 中使用 LoadLibrary 和 FreeLibrary 但无论我做什么 Excel exe 都会坚持 DLL 文件 Public Declare
  • Excel:COUNTIF 函数将“小于”字符视为运算符

    预读说明 我使用的是 LibreOffice 而不是 Excel 但大多数功能应该适用于两者 我正在制作一个电子表格 其中有大量数据 对于每个属性 例如员工数量或姓名 我需要一个函数来计算包含每个不同值的行数 我已经提取了不同的值 现在我使
  • 在 BIRT 中导出的 Excel 中表格单元格的文本换行

    我在 eclipse 中使用 BIRT 4 4 1 来生成报告 我想包装表头的文本 它在网络查看器中工作正常 但是当我导出到 Excel 时 表单元格文本在一行中 并且文本也溢出 我不想使单元格宽度等于内容 我想根据其容器宽度来换行文本 我
  • VBA 将数据透视表的源数据更新到行尾

    我试图弄清楚当使用 VBA 数据更改时如何将数据透视表源数据更新到行尾 我当前的代码如下 Dim shBrandPivot As Worksheet Dim shCurrentWeek As Worksheet Dim shPriorWee
  • 粘贴数据后取消选择列

    这可能很简单 但我无法解决它 我可以使用以下命令释放复制数据的列Application CutCopyMode False但粘贴数据的列仍然保持选中状态 我尝试过ActiveSheet EnableSelection xlNone正如论坛之
  • 在一个单元格中显示两个日期

    我正在尝试在 Excel 的一个单元格中显示两个日期 我使用了以下公式 DATE YEAR NOW MONTH NOW I1 DATE YEAR NOW MONTH NOW I15 其中I1和I15的值分别为1和15 我选择这个公式的原因是
  • 我需要使用 VBA 将数据从 Excel 插入 SQL Server

    我需要插入test vba xlsx将数据写入 SQL Server 到特定数据库 Sub insertion Dim conn As ADODB Connection Dim rs As ADODB Recordset Dim sConn
  • 如果工作表不存在,Pandas 将工作表附加到工作簿,否则覆盖工作表

    我正在使用 pandas 更新现有的 Excel 工作簿 当使用ExcelWriter对象 我可以覆盖工作表 如果存在 否则创建一个新工作表吗 我的代码附加了新工作表 但是当我尝试覆盖现有工作表时 它会附加一个名称略有不同的新工作表 例如
  • 如何用线条在一个Excel散点图中绘制多个分组数据

    我在 Excel 中的一张图表 带线的散点图 中绘制分组数据 按索引 时遇到一些困难 我将非常感谢您的帮助 我的数据分为三列 第一列是数据或组的索引 即每组数据的唯一编号 第二列是时间 第三列是数据 Group Time Data 1 1
  • 在没有加载项的情况下加载 Excel

    All 我编写了一个电子表格应用程序 用户通过双击我提供的图标来加载它 问题是用户有很多插件 这会降低 Excel 的速度 如何使用命令行开关加载 Excel 来禁用所有加载项 该问题适用于 Excel 2003 和 Excel 2007
  • 当应用程序继续运行时,如何清理 .NET 中的 COM 引用?

    我正在开发一个 NET 程序 该程序启动 Excel 的新实例 执行一些工作 然后结束 但必须让 Excel 保持运行 稍后 当程序再次运行时 它将尝试挂钩到前一个实例 在这种情况下处理 COM 对象释放的最佳方法是什么 如果我第一次没有对
  • 如果单元格包含 1 个或多个关键字,则更改不同单元格的值

    我有一个列 其中包含一些字符串描述 例如 Bob davids mowing the lawn tipping cows 此外 我将在不同的工作表或列上列出关键字列表 例如工作关键字列表1 davids work 播放关键字列表 mowin
  • 根据不同的列数据范围隐藏行

    我对使用 VBA 相当陌生 我正在尝试创建一个代码 该代码将查看具有不同数据范围的两个不同列 并隐藏最后一个数据点之外的行 引用两列 目前我有这个 Private Sub Worksheet PivotTableUpdate ByVal T
  • 如何从包含许多表的 Excel 工作表中解析数据帧(使用 Python,可能使用 Pandas)

    我正在处理布局糟糕的 Excel 工作表 我正在尝试解析这些工作表并将其写入数据库 每个工作表可以有多个表 尽管这些可能的表格的标题是已知的 但哪些表格将位于任何给定的工作表上 它们在工作表上的确切位置也不是已知的 表格不以一致的方式对齐
  • 在 Excel 工作簿中找不到链接

    我编写了一个宏来打开多个受密码保护的工作簿 这些工作簿彼此之间都有链接 因此为了方便起见 我设置了UpdateLinks 0这样在其他书籍打开之前 我就不会收到所有链接更新的密码提示 所有工作簿打开后 我尝试使用以下命令更新链接 Workb
  • 如何保留每个单元格中合并单元格的值?

    我创建了一个包含合并单元格的工作表 但合并单元格的值仅存储在第一个单元格中 无论如何 为了在每个单元格中保持相同的值 我使用的公式需要它 谢谢 在 Excel 2003 中 此宏执行以下任务 Public Sub UnmergeAndFil
  • 您可以调整用户窗体的这些代码吗:使其小而高效

    当 userfrom 按以下顺序激活时 我想在运行时添加动态用户表单控件 例如 标签 文本框 我想要类似以下的东西 当用户表单激活时 它需要询问用户字段的数量 他 她想要插入 如果用户回答7 则需要按以下顺序添加字段 3 列顺序 标签1 文
  • 无法使用 Excel JavaScript API 设置 NumberFormat

    我正在使用 Excel Javascript API 在搜索文档后 仍然找不到我想要实现的解决方案 因此 我想将所有内容设置为数字格式 文本 这样 Excel 的自动格式设置就不会与任何单元格的内容混淆 不会删除前导零或更改日期格式 文档建
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • VBA全局类变量

    我的障碍是试图让多个子程序识别类变量 当我尝试全局声明它们时 出现编译错误 无效的外部过程 然后 当我运行公共函数或子函数来声明变量时 它们在其他子函数中保持未定义状态 我希望多个子程序能够识别变量 因为它们的值应该通过用户窗体进行更改 然

随机推荐

  • Pytorch环境配置——cuda、、cudnn、torch、torchvision对应版本(最全)及安装方法

    Pytorch环境配置 cuda cudnn torch torchvision对应版本 最全 及安装方法 一 查询可支持的最高cuda版本 二 查看cuda cudnn pytorch torchvision对应版本 三 安装 3 1 W
  • Python蓝桥杯 基础练习 十六进制转八进制

    def huan n n format int n 16 o print n x int input for i in range 1 x 1 n input huan n format o 将数据格式化为八进制 int n 16 返回字符
  • 攻防世界 pwn cgfsb writeup

    攻防世界pwn cgfsb 这一题是关于格式化字符串漏洞的题 是一个单一漏洞题 不需要太多的绕过 拿到题目首先查看一下保护 可以看到 这是一个32位的程序 并且开启了Canary保护和NX保护 我们看一下IDA 进入IDA 按下F5可以得到
  • 字节跳动最爱考的前端面试题:CSS 基础

    注意 每道题前面出现的 xx 数字代表这道题出现的频次 此 CSS 基础是基于 30 篇前端面经整理出的问题和对应的回答 参考链接等 文章内容为拿到 Offer 的本人整理 2 写代码 css div 垂直水平居中 并完成 div 高度永远
  • 【Ubuntu+python2】编译并运行PyQt5程序

    文章目录 前言 一 环境搭建 1 下载sip和PyQt5 2 移除本机自带sip 二 解压编译 1 sip解压编译 2 PyQt5解压编译 make j4编译过程出现报错error waitForEvents is not a member
  • springBoot 统一返回结果类

    统一返回结果类有很多 个人感觉这种好用 记录一下 为以后 copy 准备 package com xxxx pro common import lombok Data import java util ArrayList import ja
  • 安装cmake过程出错:Error when bootstrapping CMake: Cannot find a C++ compiler that supports both C++11 and ...

    Error when bootstrapping CMake Cannot find a C compiler that supports both C 11 and the specified C flags 1 没有装gcc 和 g 2
  • javaFX环境配置

    javaFX环境配置 JavaFx在JDK1 8之后从JDK中脱离了出来 由于明天开始今天决定复现一下课本中出现的程序 哪料环境都被苟了一手 其实配置过程很简单 主要分成三个步骤 第一步 官网下载系统对应的JDK javaFX依赖包 第二步
  • 字符串转换时间,时区问题

    1 字符串转化为时间 解决了关于相差8个小时的时区问题 NSString dateStr 2012 05 17 11 23 23 NSDateFormatter format NSDateFormatter alloc init forma
  • TP5使用predis

    1 安装 composer require predis predis 2 使用 use use Predis Client class Index 使用predis public function index 配置连接的IP 端口 以及相
  • 【数据结构】树的遍历

    Ctrl AC 一起 AC 目录 树有三种表示方法 树的遍历有三种 结点结构 树的前序遍历递归版 树的后序遍历递归版 按前序遍历顺序建立一颗树 树的层次遍历 树有三种表示方法 双亲表示法 孩子表示法和兄弟表示法 这里我们使用指针式的孩子表示
  • Unity震撼首发,最新一代高清数字人短片《Enemies》

    我们屡获殊荣的 Demo 团队又一次在 异教徒 The Heretic 累积了超 400 万观众 的基础上取得了进展 推出了 Enemies 一支全新的电影式预告片 以 4K 分辨率的实时渲染来展示眼睛 头发和皮肤渲染等方面的重大突破 创建
  • 大逃杀显示服务器崩溃,绝地求生大逃杀崩溃问题汇总 崩溃问题及完美解决方案...

    国外的游戏在中国的电脑和配置上玩起来都会有点卡顿的 闪退或者崩溃的情况都是常有的 那么在玩游戏中崩溃了怎么办呢 大家赶紧来看看绝地求生大逃杀崩溃问题汇总 崩溃问题及完美解决方案 前提准备 关闭杀毒 游戏使用BE反作弊系统 杀毒软件可能会拦截
  • 网址,URL,域名,IP地址,DNS,域名解析,只为你能成功访问

    计算机网络 计算机专业必修科目之一 是专业课 但是 很多的人除了进入浏览器 输入网址 然后回车就看到页面了 然后往下操作 基本没怎么关注过它的原理 但是 你回车之后 网络内部真的是发生了很多的事情 只是你不知道 今天 我就带大家解开网络的神
  • Android平台GB28181设备接入侧(编码前

    在之前 我有写过Android平台GB28181设备接入模块的好多blog 包括参数设置 功能支持与扩展等 以数据接入为例 支持的数据类型涉及编码前 编码后或直接流数据 RTSP或RTMP流 可用于如智能监控 智慧零售 智慧教育 远程办公
  • HTTPRunner学习笔记

    HttpRunner 是一款面向 HTTP S 协议的通用测试框架 只需编写维护一份 YAML JSON 脚本 即可实现自动化测试 性能测试 线上监控 持续集成等多种测试需求 在yaml文件中组织测试用例 在命令行执行 参考 HTTPRun
  • Wazuh agent的安装、注册与配置管理

    部署Wazuh Agent常用的环境变量 Linux系统下的常用环境变量 WAZUH MANAGER WAZUH MANAGER PORT WAZUH PROTOCOL WAZUH REGISTRATION SERVER WAZUH REG
  • vue 3 第三十四章:nextTick

    nextTick是Vue3中的一个非常有用的函数 它可以在下一次DOM更新循环结束后执行回调函数 这个函数可以用来解决一些异步更新视图的问题 例如在修改数据后立即获取更新后的DOM节点 以下是一个简单的示例
  • BUUCTF【Web】Exec(命令执行漏洞)

    在进入靶场后发现窗口ping 猜测可能是SQL注入 也有可能是命令执行漏洞 我们先随便ping一下本机地址127 0 0 1 发现有回显 PING 127 0 0 1 127 0 0 1 56 data bytes 既然有回显那么就可以确定
  • 前端做excel的录入解析,将excel的数据传给后端,显示在页面上。

    具体的流程如图所示 1 点击excel录入按钮 2 打开弹框 3 点击上传按钮 会自动打开计算机本地文件 选择想上传的文件 点击打开 4 会将excel的数据解析成一个表格 可以在表格中做删除操作 点击确定 5 将excel的人员与系统中的