当前位置: 首页 > news >正文

哪些公司网站做的很好eclipse 制作网站开发

哪些公司网站做的很好,eclipse 制作网站开发,处方药可以做网站宣传吗,撰写网站建设技术解决方案文章目录 前言使用在vue文件中的使用 前言 最近写小组官网涉及到了excel文件导入的功能 场景是导入小组成员年级 班级 邮箱 组别 姓名等基本信息的excel表格用于展示各组信息 使用 先下载js库 npm install xlsx为了提高代码的复用性 我将它写成了一个通用的函数 import ap…

文章目录

  • 前言
  • 使用
  • 在vue文件中的使用

前言

最近写小组官网涉及到了excel文件导入的功能 场景是导入小组成员年级 班级 邮箱 组别 姓名等基本信息的excel表格用于展示各组信息

使用

先下载js库

npm install xlsx

为了提高代码的复用性 我将它写成了一个通用的函数

import apiClient from "@/api/axios";
import * as XLSX from "xlsx";interface UserData {姓名: string;学号: string;邮箱: string;班级: string;年级: string;组别: string;电话: string;QQ: string;
}// 验证文件后缀
function validateFileExtension(fileName: string): boolean {return fileName.toLowerCase().endsWith(".xlsx");
}// 验证Excel字段
async function validateExcelFields(file: File): Promise<string | boolean> {return new Promise((resolve, reject) => {const reader = new FileReader();reader.onload = (e) => {try {const data = new Uint8Array(e.target?.result as ArrayBuffer);const workbook = XLSX.read(data, { type: "array" });const firstSheet = workbook.Sheets[workbook.SheetNames[0]];const jsonData = XLSX.utils.sheet_to_json<UserData>(firstSheet);if (jsonData.length === 0) {reject("Excel文件内容为空");return;}const requiredFields = ["姓名","学号","班级","年级","组别","电话","QQ",];const missingFields = requiredFields.filter((field) => !(field in jsonData[0]),);if (missingFields.length > 0) {reject(`文件缺少必要字段`);return;}resolve(true);} catch (error) {reject("文件解析失败");}};reader.onerror = () => reject("文件读取失败");reader.readAsArrayBuffer(file);});
}//批量导入
export async function processFiles(file: File) {if (!validateFileExtension(file.name)) {throw "请上传.xlsx格式的文件";}try {const validationResult = await validateExcelFields(file);if (validationResult !== true) {throw validationResult as string;}const formData = new FormData();formData.append("file", file);return await apiClient.post("/userManager/teamInfo/addUsers", formData, {headers: {"Content-Type": "multipart/form-data",},});} catch (error) {// 修改此处:将返回改为抛出if (error instanceof Error) {throw error.message;}throw typeof error === "string" ? error : "未知错误";}
}// 模拟非.xlsx 文件
const nonXlsxFile = new File([], "example.txt", { type: "text/plain" });
processFiles(nonXlsxFile).then((result) => {console.log(result);
});

该文件可以在用户上传时检查上传的文件后缀是否为xlsx 以及如果上传的文件后缀是xlsx
那么检查表格中是否有该有的字段 如果没有则直接拦截不发送请求

在vue文件中的使用

const handleXlsx = (e: Event) => {const target = e.target as HTMLInputElement;if (target.files) {processFiles(target.files[0]).then((response) => {showAlert("上传成功", "pass");updateData(grade.value, group.value);target.value = "";}).catch((error) => {showAlert(error, "error");});}
};
http://www.dtcms.com/a/508368.html

相关文章:

  • 【线性代数-非线性优化算法】高斯-牛顿法和LM法
  • 自带浏览器建设银行网站打不开黄骅市原来叫什么名字
  • 如何用易语言做网站企业网站手机端
  • 互联网项目管理人员后期发展路线
  • 网络层次划分
  • 建设的网站服务器新手怎么做详情页
  • 做视频网站技术壁垒在哪里邮箱号怎么注册?
  • linux常用命令——其他
  • 简单案例演示10月PowerBI最新版 VS QuickBI 表格宽度自适应功能
  • windows显示驱动开发-多监视器管理器(三)
  • 未来之窗昭和仙君(二十七)智能硬件交互功——东方仙盟筑基期
  • map相关方法笔记
  • 保健品网站建设pc主页网站建设
  • 大数据网站建设和wordpress js代码放哪
  • hot100练习-13
  • 软件下载网站如何履行安全管理免费网络加速器永久免费版
  • 基于单片机的双机串口通信与数字串存储系统设计
  • 嘉兴建设网站模版用iis在自己家电脑上做网站
  • 无人机RTK信号增强技术要点
  • 重庆网站建设开发iis8.5 wordpress
  • Kubernetes(五) 集群调度与存储管理完全指南
  • 数据过滤网站模板下载网站防采集 如何采集
  • DeepSeek再开源3B-MoE-OCR模型,视觉压缩高达20倍,支持复杂图表解析等多模态能力!
  • 网站推广话术与技巧codewars网站
  • 南京个人做网站怎么创建网站后台
  • 【Misc】图片隐写刷题 1
  • Spring Boot 3零基础教程,WEB 开发 Thymeleaf 模板引用 笔记43
  • 深圳哪里做网站好青岛一品网站建设
  • 中小企业网站的建设实践报告电脑怎么打不开建设银行网站
  • 万网搭建淘宝客网站门户网站建设招标文件