Nodejs excel(.xlsx) 文件的读写
文章目录
- 获取数据
- 获取第一个 execle 工作簿表格
- 1. 输出 json 格式
- 2. 输出 csv 格式
- 3. 输出 html 格式
- 4.输出 formulae 格式
- 输出成文件
- 网页端导出文件
- 全部代码
- 方法封装
data.xlsx
名字 | 年龄 |
---|---|
张三 | 18 |
李四 | 19 |
王五 | 20 |
获取数据
xlsx 可以运行在网页端以及nodejs客户端,但在网页端运行中需要注意引入(打包)问题,这里就不详细讨论。
import xlsx from "xlsx";// 通过文件读取
const workBook = xlsx.readFile("./data.xlsx");// 通过数据读取
// 这里注意,传递的第一个参数必须要与 type 中的数据格式对应,传的是 array 数据, type 就必须是 "array"const array = 'Unit8Array 或者 ArrayBuffer'
const workBook = xlsx.read(array,{type:"array"})const base64 = 'base64字符串'
const workBook = xlsx.read(base64,{type:"base64"})
获取第一个 execle 工作簿表格
let name = workBook.SheetNames[0]
let sheet = workBook.Sheets[name]
1. 输出 json 格式
console.log(xlsx.utils.sheet_to_json(sheet));
[{名字:"张三",年龄:"18" },{名字:"李四",年龄:"19"},{名字:"王五",年龄:"20"}
]
2. 输出 csv 格式
console.log(xlsx.utils.sheet_to_csv(sheet));
名字,年龄,,,,,,,,,,,,,,,,,
张三,18,,,,,,,,,,,,,,,,,
李四,19,,,,,,,,,,,,,,,,,
王五,20,,,,,,,,,,,,,,,,,
3. 输出 html 格式
console.log(xlsx.utils.sheet_to_html(sheet));
<html><head><meta charset="utf-8"/><title>SheetJS Table Export</title></head><body><table><tr><td data-t="s" data-v="名字" id="sjs-A1">名字</td><td data-t="s" data-v="年龄" id="sjs-B1">年龄</td></tr><tr><td data-t="s" data-v="张三" id="sjs-A2">张三</td><td data-t="n" data-v="18" id="sjs-B2">18</td></tr><tr><td data-t="s" data-v="李四" id="sjs-A3">李四</td><td data-t="n" data-v="19" id="sjs-B3">19</td></tr><tr><td data-t="s" data-v="王五" id="sjs-A4">王五</td><td data-t="n" data-v="20" id="sjs-B4">20</td></tr></table></body></html>
4.输出 formulae 格式
console.log(xlsx.utils.sheet_to_formulae(sheet));
["A1='名字", "B1='年龄","A2='张三", 'B2=18',"A3='李四", 'B3=19',"A4='王五", 'B4=20'
]
输出成文件
xlsx.writeFile(workBook, "./output.xlsx");
网页端导出文件
// 这里不需要写路径,写文件名,会弹出弹窗让用户选择保存路径
xlsx.writeFile(workBook,'表格.xlsx');
全部代码
import xlsx from "xlsx";
const workBook = xlsx.readFile("./data.xlsx");let name = workBook.SheetNames[0];
let sheet = workBook.Sheets[name];console.log(xlsx.utils.sheet_to_json(sheet));console.log(xlsx.utils.sheet_to_csv(sheet));console.log(xlsx.utils.sheet_to_html(sheet));console.log(xlsx.utils.sheet_to_formulae(sheet));xlsx.writeFile(workBook, "./output.xlsx");
方法封装
import xlsx from "xlsx";/*** 解析 excel 数据成 json 对象*/
export function parseExcel(data,type) {const workBook = xlsx.read(data, { type });const excel = workBook.SheetNames.map((name) => ({SheetName: name,data: xlsx.utils.sheet_to_json(workBook.Sheets[name]) as any[]}));
}/*** 将对象数据解析成 excel* @param {string} filePath 路径* @param {Array} list 数据* @param {string} sheetName 表格名字, 默认 Sheet1*/
export function writeExcel(filePath, list, sheetName = "Sheet1") {// 新建工作簿const workBook = xlsx.utils.book_new();// 添加表格xlsx.utils.book_append_sheet(workBook, xlsx.utils.json_to_sheet(list), sheetName);// 输出文件xlsx.writeFile(workBook, filePath);
}
Nodejs excel(.xlsx) 文件的读写相关推荐
- python——xlsx文件的读写操作详解
本文对xlsx文件的读写使用以下的库,已安装的可以忽略: """ 需安装的库文件: pip install xlrd==1.2.0 pip install pywin32 ...
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- python读取xlsx文件找不到_在python中打开并读取excel .xlsx文件
我正在尝试使用python打开一个excel .xlsx文件,但我无法找到办法,我尝试使用pandas但是它想要使用一个名为NumPy的库我试图安装numpy但它仍然可以找不到. 我也尝试过使用xlr ...
- Python读取和操作Excel(.xlsx)文件
Python读取和操作Excel(.xlsx)文件 使用openpyxl库来控制excel文件(即.xlsx为后缀的文件).这里介绍一下excel数据的结构. 打开excel文件后生成一个workbo ...
- Java 后端将上传的 csv 文件转为 Excel xlsx 文件
一.概述 本地文件是 csv格式,将其转成 xlsx 或者 xls. 二.实现步骤 2.1 获取 csv 文件数据 由于前端的上传文件的数据类型是 MultipartFile,所以就通过获取输入流的方 ...
- 实战:从文件夹中庞大的excel(.xlsx)文件中提取并整合数据
从文件夹中庞大的excel(.xlsx)文件中提取并整合数据 Input 需要从文件夹树中提取有格式的单个数据格并汇总. 例如: 2017-2020x市蚊虫数据/2018/7月/abcds方法统计.x ...
- golang 读取excel(xlsx文件) 时间格式解析
问题起源 最近在写一个读取xlsx文件,并解析其中数据的项目,在所有的数据都就绪之后,却遇到了时间格式获取不正确的问题 时间格式 我查询到的结果 我的代码 func main() {f, err := ...
- 后端使用nodejs生成xlsx文件数据流,并返回给前端直接进行下载
本文教您如何不将文件存储在后端,使用nodejs返回文件流给前端直接进行下载 1,后端安装node-xlsx npm install node-xlsx -S 2,node生成xlsx文件buff ...
- java使用poi操作excel文件_使用 java apache poi 操作 excel xlsx 文件
工作中临时需要对各种订单量进行简单的统计分析,为了方便简单学习了apache poi 对 xlsx 文件的基本操作,简单记录 1. 引包 org.apache.poi poi-ooxml 4.1.2 ...
最新文章
- php 打开动态链接,php调用com组件-dll文件(动态链接库)
- 基于mybatis声明SQL Session对象
- 解决redhat安装centos yum源的问题
- 协议crc计算_从零了解modbus协议 第三篇
- jsp思维导图_2019年经济法基础思维导图
- matlab sobel锐化,sobel锐化 - yirui wu.ppt
- 变量命名规则_Java变量与常量
- 【数据库原理实验(openGauss)】创建数据库、表和索引
- 记录开发过程中第一次遇到的回调地狱
- weblogic部署war包
- 基于深度学习的图像文字识别技术
- 简体繁体转换JS(JavaScript)脚本
- Windows卸载easyconnect
- STM32CubeMX+ETH+DP83848+Lwip 成功ping通(基于stm32F107开发板)
- 水面反光如何拍摄_拍摄水景的技巧方法
- AttributeError: builtin_function_or_method object has no attribute mktime
- java qq开发_Ubuntu用户的福音:基于Java开发的开源QQ客户端iQQ
- spring security中Authority、Role的区别
- 改变不了环境,学会改变自己!
- try catch和finally搭配return执行常见面试题讲解
热门文章
- 高手才知道!七个你所不知道的 D3.js 秘技
- java中double的使用方法_java中double型数据如何四舍五入?详解
- 看无字幕外文讲课视频听不懂怎么办?
- 提高网速-MAC配置DNS服务器
- 常熟理工php实验三_西普学院(实验吧)Web题解
- Jenkins 安装以及使用教程
- PHP输出时间精确到毫秒
- 第1关:无监督学习的文本聚类
- [吐槽][mellanox]RoCE的默认打开;rdma-core
- PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering 论文解读和感想