前端处理 Excel 文件
引入XLSX 
 
   XLSX 是一个流行的 JavaScript 库,用于处理 Excel 文件(包括 .xls 和 .xlsx 格式)。它可以在 Node.js 环境和浏览器中运行,提供了丰富的 API 来读取、写入、修改 Excel 文件。当你使用 import * as XLSX from 'xlsx'; 这行代码时,你实际上是在从 xlsx 包中导入所有的导出内容,并将它们作为一个名为 XLSX 的对象来使用。这里有几个基本的 XLSX 库用法示例,展示如何使用这个库来读取和写入 Excel 文件:
读取 Excel 文件
假设你有一个名为 example.xlsx 的 Excel 文件,你想读取其中的数据。
const workbook = XLSX.readFile('example.xlsx'); // 读取 Excel 文件  
const firstSheetName = workbook.SheetNames[0]; // 获取第一个工作表的名称  
const worksheet = workbook.Sheets[firstSheetName]; // 通过名称获取第一个工作表  // 将工作表转换为 JSON 对象  
const json = XLSX.utils.sheet_to_json(worksheet, {header:1}); // {header:1} 表示第一行为表头  
console.log(json);写入 Excel 文件
如果你想创建一个新的 Excel 文件或修改一个现有的文件并保存它,你可以这样做:
// 创建一个新的工作簿  
const workbook = XLSX.utils.book_new();  // 创建一个新的工作表  
const worksheet = XLSX.utils.json_to_sheet([{name: "Sheet JS", data: [1, 2, 3]}]);  // 将工作表添加到工作簿  
XLSX.utils.book_append_sheet(workbook, worksheet, "My Sheet");  // 写入文件  
XLSX.writeFile(workbook, 'new_example.xlsx');注意,上面的示例中 json_to_sheet 函数的输入数据格式是为了展示如何创建一个包含特定数据的工作表,并不完全符合 Excel 表格的常见数据结构。通常,你会传入一个对象数组,每个对象代表一行,对象的键对应列名。
表格数据转为 Excel 文件并导出
npm install file-saver import { saveAs } from 'file-saver';
//引入导出api let data=[[1,2,3],[4,5,6]
]
// 将数据转换为工作表const worksheet = XLSX.utils.aoa_to_sheet(data);// 创建工作簿并添加工作表const workbook = XLSX.utils.book_new();XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');// 生成Excel文件const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });// 使用blob和FileReader创建一个URL然后下载const dataBlob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });saveAs(dataBlob, 'demp.xlsx');注意事项
- 当你在 Node.js 环境中使用 XLSX库时,需要确保你已经通过 npm 或 yarn 安装了它(npm install xlsx或yarn add xlsx)。
- 在浏览器中使用时,你可能需要通过 <script>标签或类似的方式引入库文件。
- XLSX库支持多种格式的 Excel 文件(包括- .xls),但处理- .xls文件时可能需要额外的库(如- SheetJS/xlsx的一部分功能)或依赖。
- 使用 XLSX库时,请确保遵循其 API 文档,以充分利用其功能。
相关文章:
前端处理 Excel 文件
引入XLSX XLSX 是一个流行的 JavaScript 库,用于处理 Excel 文件(包括 .xls 和 .xlsx 格式)。它可以在 Node.js 环境和浏览器中运行,提供了丰富的 API 来读取、写入、修改 Excel 文件。当你使用 import * as XLSX from xlsx; 这行…...
 
(vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
(vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束 需求:按勾选的顺序给后端传值 难点:在 Element UI 的 el-cascader 组件中,默认的行为是根据数据的层级结构来显示选项,用户的选择也会基于这种层级结构,el-…...
 
Redis进阶(四):哨兵
为了解决主节点故障,需要人工操作切换主从的情况;因此需要一种方法可以自动化的切换:哨兵的引入大大改变这种情况。 哨兵的基本概念 自动切换主从节点 哨兵架构 1、当一个哨兵节点发现主节点挂了的时候,还需要其他节点也去检测一…...
蓝屏事件:网络安全的启示
“微软蓝屏”事件暴露了网络安全哪些问题? 近日,一次由微软视窗系统软件更新引发的全球性“微软蓝屏”事件,不仅成为科技领域的热点新闻,更是一次对全球IT基础设施韧性与安全性的深刻检验。这次事件,源于美国电脑安全技…...
技术方案评审原则
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言技术方案评审原则1.理论突破阶段2.技术突破阶段3.工程化阶段自动驾驶行业的技术方案分析前言 认知有限,望大家多多包涵,有什么问题也希望能够与大…...
 
117页PPT埃森哲-物流行业信息化整体规划方案
一、埃森哲-物流行业信息化整体规划方案 资料下载方式,请看每张图片右下角信息 埃森哲在物流行业信息化整体规划项目中的核心内容,旨在帮助物流企业通过信息技术的应用实现业务流程的优化、运营效率的提升以及市场竞争力的增强。以下是埃森哲在此类项目…...
 
百度网盘不下载怎么直接打印文件?
在数字化时代,百度网盘作为我们存储和分享文件的重要工具,承载了大量的文档、图片和资料。然而,当需要打印这些文件时,很多用户会面临一个共同的问题:不想下载到本地再打印,既占用空间又浪费时间。那么&…...
设置了 robots.txt 禁止爬虫抓取,为什么还是能被百度搜索出来
虽然设置了 robots.txt 禁止爬虫抓取,但网页仍可能被百度搜索出来,主要有以下几个原因: robots.txt 只是一种建议性协议,并非强制性[2]。虽然大多数搜索引擎会遵守 robots.txt 的规则,但并不是所有爬虫都会严格遵守。 …...
 
DedeCMS-V5.7.82-UTF8织梦管理系统漏洞
将靶场环境放到www目录下——访问/dedecms/uploads 安装程序 - 织梦内容管理系统 V5.7 UTF8SP2 同意协议——继续 继续 配置后——点击继续 进入后台 登录后台——填写用户名密码。 方法一:上传shell文件 后台——核心——附件管理——上传新文件。 访问/dedecms…...
 
【Python】字符串练习题及代码示例
1、使用while循环实现对字符串中每个字符进行输出。 代码示例: 2、请将代码实现如下进制的转换。 (1)v1675,请将v1转换为二进制。 代码: 注意:将十进制数转换为二进制数的方法是:bin(a),a是整型&#x…...
fluent动网格profile udf 注意事项
案例一: ((profile_name transient 2 0) ....第一行 (time 0 15.0) ....第二行 (v_x 1.2 1.2)) …...
 
【doghead】mac构建 2: player 端 clion构建
准备工作 【doghead】mac构建 1 【doghead】mac: clion2024.1启动崩溃 mbp的 uv 构建ok zhangbin@zhangbin-mbp-2  ~/tet/Fargo/zhb-bifrost/Bifrost-202403/worker/third_party/libuv   main clion使用lldb cmake构建 更...
 
论网络流(最大流篇)--新手入门超详解--包教包会
论网络流--新手入门超详解--包教包会 1 前言2 什么是最大流3最大流问题的求解(1)问题转化--增广路的引入(2)走回头路--EK算法(3)EK的弊端(4)化图为树--DINIC算法 4后记 1 前言 网络…...
 
环境搭建:全面详尽的 MongoDB Shell MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)
环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主) MongoDB 是一个基于文档的 NoSQL 数据库,以其高性能、灵活性和可扩展性而受到广泛欢迎。本文将带您完成 MongoDB 的安装…...
使用 OpenSearch 的 K-NN 向量搜索来增强搜索功能
使用 OpenSearch 的 K-NN 向量搜索来增强搜索功能 许多应用程序都依赖于提供精确且相关的搜索结果的能力。尽管传统关系数据库的全文搜索功能在某些情况下已经足够,但这些数据库在从文本中提取语义含义或搜索结构化程度较低的数据方面可能会出现不足。在这篇博文中&…...
 
Less-2(闭合)
我们使用第一关的测试方法尝试一下,打咩 直接看源码,看到,尝试一下闭合 <?php ini_set("display_errors", 0); $str $_GET["keyword"]; echo "<h2 aligncenter>没有找到和".htmlspecialchars($str)."相…...
 
mysql介绍
MySQL是一种开源的关系型数据库管理系统(RDBMS),广泛用于存储和管理数据。它支持多种操作系统,如Linux、Windows、MacOS等。MySQL的特点包括: 1.开源免费:MySQL是开源的,可以免费使用和分发。 2…...
【ROS学习】ROS中 use_sim_time 参数的含义与作用
文章目录 写在前面一、背景描述二、 use_sim_time 参数的含义与作用三、举例说明1. 不设置use_sim_time (也即 use_sim_time false),播放数据集使用rosbag play **.bag 2. 不设置use_sim_time (也即 use_sim_time false),播放数据集使用rosbag play **…...
 
python-查找元素3(赛氪OJ)
[题目描述] 有n个不同的数,从小到大排成一列。现在告诉你其中的一个数x,x不一定是原先数列中的数。你需要输出最后一个<x的数在此数组中的下标。输入: 输入共两行第一行为两个整数n、x。第二行为n个整数,代表a[i]。输出&#x…...
 
苹果 Safari 的隐私保护与广告追踪问题 :技术进展与挑战
隐私保护的进展与挑战 近年来,浏览器行业在隐私保护技术方面取得了显著进展,尤其是在广告追踪领域。谷歌的 Chrome 浏览器推广了隐私沙盒,通过将用户可能感兴趣的主题分类并推送给广告商。Mozilla Firefox 和 Meta Facebook 则推出了一种名为…...
 
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
 
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
 
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
 
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
