SheetJS生成/解析Excel

Node.js Excel读写全攻略:从SheetJS/xlsx入门到实战应用 在后端开发与数据处理中,Excel文件读写是常见的需求,尤其在数据迁移、报表生成和自动化办公场景。其核心原理在于解析和生成基于XML的电子表格文件结构。Node.js作为高效的服务器端JavaScript运行时,通过第三方库可以轻松实现Excel文件的处理,这为开发者提供了强大的数据交换与报表服务构建能力。在Node.js生态中,SheetJS/xlsx库是处理Excel文件的利器,它支持多种格式,并能将数据在JSON与Excel之间灵活转换。本文聚焦于xlsx库的实战应用,详细讲解如何读取Excel文件、 阅读详情

前言

新公司的后台经常有一些数据导出的功能,而不少情况是导出筛选出来的数据(没有分页的那种)。

这个时候,再让后端去跑一遍逻辑,有点浪费,如果前端可以自己做完就完美了。

SheetJS(js-xlsx)

项目地址:sheetjs

因为需求比较简单,只是导入导出,目前还没遇到什么问题。

官方有 Pro 版,看到有人说过,有很多版本,具体报价还是看诉求。

兼容性

SheetJS兼容性

使用方式

官方的 README.md 已经介绍的很详细了,下面简单介绍一下。

使用CDN
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
使用NPM
npm install xlsx

官方demo

官方的 demo 还是蛮多的,链接:github

有部分 demo 可能存在问题,看的时候最好运行一遍。

简单下载示例

这里演示了 aoa_to_sheet 和 json_to_sheet 两种方式。

还有 table_to_sheet 可以直接将 DOM 直接转换成 excel。目前没有这方面诉求,也就没尝试这个方式,猜测可能对于 DOM 有一些要求。

Demo 传送门

/**
 * JSON转换Excel
 */
function json2Sheet () {
    let json = [
        {
            "姓名": "张三",
            "性别": "男",
            "年龄": 18
        },
        {
            "姓名": "李四",
            "性别": "女",
            "年龄": 19
        },
        {
            "姓名": "王二麻",
            "性别": "未知",
            "年龄": 20
        }
    ]

    // 实例化一个工作簿
    let book = XLSX.utils.book_new()

    // 实例化一个Sheet
    let sheet = XLSX.utils.json_to_sheet(json, {
        header: ['姓名', '性别', '年龄']
    })

    // 将Sheet写入工作簿
    XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')

    // 写入文件,直接触发浏览器的下载
    XLSX.writeFile(book, 'json2Sheet.xlsx')
}

/**
 * 数组转换Excel
 */
function array2Sheet () {
    let data = [
        ['姓名', '性别', '年龄'],
        ['张三', '男', '18'],
        ['李四', '女', '19'],
        ['王二麻', '未知', '20']
    ]

    // 实例化一个工作簿
    let book = XLSX.utils.book_new()

    // 实例化一个Sheet
    let sheet = XLSX.utils.aoa_to_sheet(data)

    // 将Sheet写入工作簿
    XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')

    // 写入文件,直接触发浏览器的下载
    XLSX.writeFile(book, 'array2Sheet.xlsx')
}

简单解析示例

这里是针对 input:file 上传之后的结果进行解析的。

主要用到了两个方法:XLSX.read 和 XLSX.utils.sheet_to_aoa。

Demo 传送门

/**
 * JSON转换Excel
 */
function parseExcel (fileDom) {
    let file = fileDom.files[0]
    let reader = new FileReader()
    let rABS = typeof FileReader !== "undefined" && (FileReader.prototype||{}).readAsBinaryString
    if (rABS) {
        reader.readAsBinaryString(file)
    } else {
        reader.readAsArrayBuffer(file)
    }
    reader.onload = function(e) {
        let data = e.target.result
        if (!rABS) {
            data = new Uint8Array(data)
        }
        let workBook = XLSX.read(data, {type: rABS ? 'binary' : 'array'})
        workBook.SheetNames.forEach(name => {
            let sheet = workBook.Sheets[name]
            let json = XLSX.utils.sheet_to_json(sheet, {
                raw: false,
                header: 1
            })
            // TODO 处理数据
        })
    }
}

最后

更多的功能还是要通过阅读官方的文档完成。

sheetJs / xlsx-js-style 纯前端实现导出 excel 表格及自定义单元格样式 阅读详情

相关推荐

运用SheetJS库实现Excel的导入导出

SheetJS 库实现Excel导入导出

menergy 2954

SheetJS,一款小巧的 JavaScript 表格库

SheetJS 是一个纯粹基于 JavaScript 的表格处理库,它支持各种表格文件格式,包括Excel、CSV等。该库提供了丰富的API,能够在不需要服务器端支持的情况下,直接在浏览器中进行表格数据的操作。

繁华落尽 7172

SheetJS实战:xlsx.full.min.js在前端Excel处理中的5个高效应用场景

本文深入探讨了SheetJS库的核心组件xlsx.full.min.js在前端处理Excel文件的五大高效应用场景。内容涵盖电商后台数据导入与校验、BI看板交互式导出、客服系统模板化批量操作、利用Web Worker处理大规模表格以保持页面流畅,以及在非打包环境(如浏览器扩展、Electron应用)中的集成策略,并提供了详细的代码示例与性能优化指南。

weixin_29011395的博客 599

前端知识分享——SheetJS 用法体验

前端知识分享——SheetJS 用法体验 Write and share what I see and hear 使用SheetJS导出 Excel 表格 最近遇到一个很好用的前端导出Excel 表格的工具 – SheetJS 官方地址 github地址 官方提供了多种版本,自己做点小demo可以使用社区免费版本 使用方法 具体使用方法在官方文档中有很详细的说明,这里举个例子 安装 npm install xlsx 引入 import xlsx from 'xlsx' 使用 // 1. 创建一个工

sinat_43095140的博客 1万+

拼多多订单导出插件:前端DOM解析与合规Excel生成实践

浏览器插件开发本质上是面向真实用户工作流的前端工程实践,其核心在于利用原生 DOM API 实现页面内数据提取与结构化转换。本文围绕‘不离页’设计原则,深入解析如何通过语义化 DOM 识别、动态特征指纹匹配等技术,在不调用后端接口、不上传数据的前提下,稳定提取拼多多订单信息;结合 SheetJS 与编码兼容性治理,解决 Excel/CSV 导出在多平台、多Office版本下的乱码、错列、损坏等高频问题。内容覆盖 Chrome 插件权限控制、CSP 安全策略、用户知情权实现等合规要点,为电商场景下轻量级数据流

weixin_33095355的博客 283

前端实战:用js-xlsx解析与生成Excel全攻略避坑指南

Excel文件处理是前端工程化中绕不开的基础需求,尤其在报表导出、数据导入和批量操作场景里,纯后端处理往往面临响应慢、排队等待的痛点。理解Excel数据模型的核心原理是关键——工作簿(workbook)、工作表(worksheet)与单元格(cell)构成了整个文件结构,而js-xlsx(SheetJS)则通过read、utils、write三组API实现从文件到JSON数组再到文件的双向转换。其技术价值在于将解析与生成完全放到浏览器端,既减轻服务端压力,又能让用户秒得文件。实际应用时,从上传文件的Arra

weixin_32943857的博客 175

AI如何用SheetJS帮你自动处理Excel数据?

于是研究了一下如何用SheetJS结合AI实现自动化处理,效果出乎意料的好。这个库最棒的是同时支持.xlsx和.csv格式,处理老版本Excel文件也没问题。SheetJS会将Excel文件解析成JSON格式,这样数据就变成了我们可以直接操作的JavaScript对象。而SheetJS作为强大的JavaScript库,可以直接在Node.js环境中操作Excel文件。特别是部署功能,把本地脚本变成可随时访问的在线工具,同事们都觉得特别实用。内置的Kimi-K2模型,把解析后的数据传给它分析。

NightshadeEagle34的博客 778

纯前端多格式文档预览方案:PDF/Excel/PPTX/DOCX零后端解析

在线文档预览是现代Web应用的基础能力,其核心在于浏览器端对PDF、Excel、PPTX、DOCX等办公文件的原生解析与渲染。传统方案依赖后端转码,存在部署复杂、公式失真、动画丢失、跨域受限等问题;而纯前端方案依托pdfjs-dist、SheetJS、pptxgenjs、mammoth等轻量库,通过动态导入、Canvas文字层叠加、公式实时计算(cell.v)、XML结构解析等关键技术,实现零服务依赖、高兼容性、可调试的客户端处理。该方案适用于课程设计、毕设演示、企业内部文档中心等轻量场景,兼顾可用性与工程

weixin_32570803的博客 269

Node-xlsx与SheetJS的完美结合:底层原理与扩展开发指南

Node-xlsx 是一个基于 SheetJS 构建的 Node.js Excel 文件解析与生成库,为开发者提供了简单高效的 Excel 处理解决方案。本文将深入探讨 node-xlsx 如何与 SheetJS 完美结合,揭示其底层工作原理,并提供实用的扩展开发指南。 ## 🚀 Node-xlsx:Excel 处理的终极解决方案 Node-xlsx 是一个轻量级但功能强大的 Node.js

gitblog_00897的博客 772

sheetjs js-xlsx

公司网络限制不能github下载,上传这里中转下,大家可以从官网下载

《阵列信号处理及MATLAB实现》阵列响应矩阵(均匀线阵、均匀圆阵、L型阵列、平面阵列和任意阵列)

《阵列信号处理及MATLAB实现》内容总结,如需阅读更详细内容请购买正版书籍。

APPLECHARLOTTE的博客 1万+

如何用SheetJS实现Excel表格到数据可视化的无缝转换:新手必备指南

SheetJS是一款功能强大的电子表格数据处理工具包,能够帮助开发者轻松实现Excel表格数据的读取、处理与转换。本文将详细介绍如何利用SheetJS将Excel数据无缝转换为直观的图表,让数据可视化变得简单高效。 ## 为什么选择SheetJS进行数据可视化? SheetJS社区版提供了经过实战检验的开源解决方案,能够从几乎任何复杂的电子表格中提取有用数据,并生成适用于新旧软件的新电子表格。

gitblog_00078的博客 497

深入解析以太网接口中的BOB Smith电路设计

本文深入解析以太网接口中的BOB Smith电路设计,详细介绍了其在共模噪声抑制、浪涌防护和EMI优化中的关键作用。通过实际案例和设计要点,帮助工程师正确选择75Ω电阻和高压电容等元件,优化PCB布局,解决电压型与电流型PHY的设计差异,以及千兆与百兆以太网的特殊考量。

weixin_28339967的博客 688

SheetJS与Fastify:高性能电子表格数据API终极指南

SheetJS是一款功能强大的电子表格数据处理工具包,能够轻松实现Excel、CSV等多种格式文件的解析与生成。Fastify作为一款高性能的Node.js Web框架,以其出色的速度和低开销著称。将SheetJS与Fastify结合使用,可以构建出高效处理电子表格数据的API服务,满足企业级应用对数据处理的需求。 ## 为什么选择SheetJS与Fastify组合 SheetJS提供了全面的

gitblog_00164的博客 441

从TCGA官网获取新版count数据并精准转换为TPM的实战指南

本文详细介绍了从TCGA官网获取新版count数据并精准转换为TPM的实战指南。通过TCGAbiolinks工具下载原始count数据,结合GENCODE v36注释文件计算基因有效长度,最终实现count到TPM的标准化转换,确保数据完整性和分析可靠性。文章包含完整代码示例和常见问题解决方案,特别适合生物信息学研究人员参考。

weixin_27310417的博客 284

使用 MATLAB/Simulink 来构建一个基于多能互补的微电网储能系统模型

【摘要】本文详细介绍了基于MATLAB/Simulink的多能互补微电网储能系统建模方法。教程涵盖光伏发电、风力发电、电池储能和负荷模块的搭建,重点讲解了能量管理系统(EMS)的调度策略实现。通过设置传感器监测关键参数,并采用固定步长离散求解器进行仿真,分析了系统在动态工况下的响应特性,包括发电-负荷平衡、储能状态变化及系统稳定性等指标。该建模方法为多能互补微电网的设计与优化提供了有效工具,对提升可再生能源利用效率具有实践指导意义。

MHD0815的博客 190

如何使用SheetJS与Apache Flink构建高效电子表格流处理系统:完整指南

在当今数据驱动的时代,电子表格文件(如Excel、CSV)仍然是企业和个人数据交换的重要格式。Apache Flink作为强大的流处理框架,能够实时处理海量数据,而SheetJS(SheetJS Spreadsheet Data Toolkit)则提供了在JavaScript/TypeScript环境中解析和生成电子表格的能力。本文将详细介绍如何将SheetJS与Apache Flink集成,构建

gitblog_00755的博客 957

网表导入virtuoso后发现pg pin忘记connect_pg_net/globalNetConnect怎么办?

数模混合项目中经常需要一些需要到virtuoso去连接的线,比如IO上的pg和一些信号线,除了在pr工作中设置skip route之外还需要做好net的赋值,告诉工具虽然我没在物理上有连接,但是实际上应该连什么net,这部分提现在网表里。在Default Net Name中也填写net name,因为这个net需要做global操作,即在顶层定义这个net,所以需要在net name后加个!打开schematic,删除指定cell pin所接net的label。

m0_61544122的博客 969

前端工程师实战:用JavaScript将Excel数据安全高效转换为SQL语句

数据格式转换与清洗是数据处理流程中的基础环节,其核心原理是将非结构化或半结构化的数据源,通过解析、映射和校验,转化为目标系统可识别的标准化格式。这一过程的技术价值在于实现数据流动的自动化,显著提升数据迁移、系统集成和内部工具开发的效率。在工程实践中,前端与Node.js环境常需处理来自业务方的Excel表格数据,并需将其安全、准确地导入数据库。通过JavaScript生态的成熟库(如SheetJS)进行Excel解析,结合严谨的数据清洗、防SQL注入的转义处理,以及批量插入等优化策略,可以构建出健壮的Exc

weixin_30691649的博客 330

YOLOv8 交通违规检测各个场景的实际应用

本文介绍了基于YOLOv8的交通违规检测系统在不同场景下的应用实现。系统可检测闯红灯、超速、违停和不系安全带等多种违规行为,针对每种场景提供了具体的技术方案和Python实现代码。其中闯红灯检测结合信号灯状态分析,超速检测通过距离时间计算速度,违停检测采用长时间跟踪策略,安全带检测则需更高精度识别。文章还展示了如何整合各功能构建综合交通监管系统,并总结了不同应用场景的技术要点和优化方向,为智能交通管理提供了实用解决方案。

u010117029的博客 300

华为od 面试八股文_Spring_03_含答案

控制反转IOC是一个很大的概念,可以用不同的方式来实现。其主要实现方式有两种:依赖注入和依赖查找依赖注入;

MISAYAONE的博客 2341

如何用SheetJS构建高效的电子商务订单数据电子表格处理系统

在电子商务运营中,订单数据的高效处理是提升业务效率的关键环节。SheetJS作为强大的电子表格数据工具包,能够帮助开发者轻松实现Excel、CSV等格式文件的读写与转换,为构建自动化订单处理系统提供核心支持。本文将详细介绍如何利用SheetJS打造从数据导入到报表生成的完整解决方案,让订单管理变得简单而高效。 ## 为什么选择SheetJS处理电商订单数据? SheetJS(又称js-xlsx

gitblog_00009的博客 480

基于STM32、HAL库、I2C接口的姿态传感器/陀螺仪之ICM-42670-P驱动 C语言程序设计

/ 设置加速度计和陀螺仪的工作模式。// 读取加速度计和陀螺仪数据。

corlin6688的博客 1180

SheetJS与WebAssembly:提升电子表格处理性能的终极指南

SheetJS是一款功能强大的电子表格数据处理工具包,支持多种格式如Excel、CSV、ODS等文件的解析与生成。在处理大型电子表格时,性能往往成为关键瓶颈,而WebAssembly技术的引入为解决这一问题提供了全新可能。本文将深入探讨如何通过WebAssembly加速SheetJS的电子表格处理能力,帮助开发者轻松应对海量数据处理需求。 ## 为什么选择SheetJS进行电子表格处理 She

gitblog_00365的博客 357

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何用SheetJS重构数据流转架构:从Excel依赖到前端自主的演进路径

现代企业应用中,数据流转常受制于Excel格式的兼容性问题,传统方案要么依赖后端处理导致响应延迟,要么使用重量级库增加应用体积。SheetJS作为纯JavaScript实现的电子表格处理工具,提供了从数据解析到生成的全链路解决方案,让前端应用能够自主处理复杂电子表格数据,显著降低系统耦合度并提升用户体验。 ## 诊断传统Excel处理架构的瓶颈 大多数Web应用在处理电子表格数据时面临三重挑战

gitblog_00580的博客 75

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

JSON转Excel的Web工具开发与优化实践

JSON作为一种轻量级数据交换格式,在Web开发和数据处理中广泛应用。其基于文本的结构化特性,使得数据在不同系统间的传输和解析变得高效。而Excel作为办公场景下的标准表格工具,常需要与JSON数据进行互转。通过使用SheetJS等开源库,开发者可以快速实现JSON到Excel的转换逻辑,并利用Web技术栈构建零安装的跨平台工具。这类工具特别适合处理API响应数据、前端调试等场景,通过React+Node.js的技术组合,既能保证界面交互体验,又能实现服务端的数据处理优化。在实际工程中,还需要考虑大数据分块

weixin_29015801的博客 120

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: PHP 限制定时任务进程数量
下一篇: Element-ui获取上传的Excel并预览
IMJCW
博客等级 码龄10年 13粉丝 58原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值