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

【前端】读取 xlsx 文件并转化成 json 数据

1、使用 XMLHttpRequest

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>Read Excel with JavaScript</title></head><body><script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.5/xlsx.full.min.js"></script><script>// 创建 XMLHttpRequestvar xhr = new XMLHttpRequest();// 配置请求类型和URLxhr.open("GET", "./测试.xlsx", true);xhr.responseType = "arraybuffer"; // 重要:设置响应类型为arraybuffer以接收二进制数据// 处理请求状态改变xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {// 当请求成功完成var data = new Uint8Array(xhr.response); // 获取返回的二进制数据// 使用SheetJS解析二进制数据var workbook = XLSX.read(data, { type: "array" });// 读取第一个工作表var firstSheetName = workbook.SheetNames[0];var worksheet = workbook.Sheets[firstSheetName];// 将工作表转换为JSONvar jsonData = XLSX.utils.sheet_to_json(worksheet);// 处理JSON数据console.log(jsonData);}};// 发送请求xhr.send();</script></body>
</html>

2、使用 input

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>Read Excel with JavaScript</title></head><body><input type="file" id="fileInput" /><pre id="output"></pre><script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.5/xlsx.full.min.js"></script><script>// JavaScript 部分在这里document.getElementById("fileInput").addEventListener("change", handleFile, false);function handleFile(event) {const file = event.target.files[0];const reader = new FileReader();reader.onload = function (e) {const data = new Uint8Array(e.target.result);const workbook = XLSX.read(data, { type: "array" });// 获取第一个工作表的名称const firstSheetName = workbook.SheetNames[0];// 获取第一个工作表const worksheet = workbook.Sheets[firstSheetName];// 将工作表内容转换为 JSON 格式const jsonData = XLSX.utils.sheet_to_json(worksheet, {header: 1,});console.log(jsonData);};reader.readAsArrayBuffer(file);}</script></body>
</html>

http://www.mrgr.cn/news/34693.html

相关文章:

  • 10月月报 | Apache DolphinScheduler进展总结
  • python os.path.dirname(path) 详解
  • 如何保护 Microsoft 网络免受中间人攻击
  • 【AlphaFold3】开源本地的安装及使用
  • 【论文复现】基于标签相关性的多标签学习
  • 解锁微前端的优秀库
  • Springboot Mybatis条件查询
  • 基于 Amazon Bedrock +lambda函数调用大模型构建你的智能网页助手
  • 【已解决】用JAVA代码实现递归算法-从自然数中取3个数进行组合之递归算法-用递归算法找出 n(n>=3) 个自然数中取 3 个数的组合。
  • 匈牙利算法详解与实现
  • 如何使用GLib的单向链表GSList
  • 【leetcode】环形链表、最长公共前缀
  • 注册建造师执业工程规模标准(市政公用工程)
  • 计算机毕业设计Hadoop+PySpark深圳共享单车预测系统 PyHive 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习
  • Linux 压缩制定目录下指定类型的多个文件
  • YOLO V10简单使用
  • 0-1开发自己的obsidian plugin DAY 1
  • C++的哲学思想
  • iOS 顶级神器,巨魔录音机更新2.1正式版
  • 一看就会!PS2024下载安装教程详解
  • 在 Java 中,你如何实现不可变对象?不可变对象有哪些好处?
  • 【Godot4.3】三角形类
  • JS的链判断符有几种写法,有哪些用法?
  • # 深度学习笔记(9)huggingface 构建数据集
  • kubernetes网络(三)之bird的路由反射器的使用
  • 大数据新视界 --大数据大厂之 Reactjs 在大数据应用开发中的优势与实践