SheetJS的部分操作

news2024/11/15 17:46:52

成文时间:2023年2月18日
使用版本:"xlsx": "^0.18.5"

碎碎念:
有错请指正。
这个库自说自话升级到0.19。旧版的文档我记得当时是直接写在github的README上。
我不太会使用github,现在我不知道去哪里可以找到旧版的文档。
这种感觉让你觉得很无助,使用这样的库确实是没啥安全感。
代码修修改改是正常的,回头找不到文档了这算是什么事。。
当然,开源分享本身已经是伟大而值得尊敬的事。
作为伸手党也不能多比比什么。所以我这次使用希望把操作多积累下来一点,以防再遇到背刺吧。

文章目录

  • 读取文件
  • 排序

读取文件

        const reader = new FileReader();
        reader.readAsArrayBuffer(file);
        reader.onload = (e) => {
            let data = e.target.result;
            let wb = read(data)
            let sheets = wb.Sheets;
            
            // 获取json格式的数据
            let json_data = utils.sheet_to_json(sheets[wb.SheetNames[0]])
            
            // 取出header(json的属性key)
            let columns = Object.keys(json_data[0]).map((r) => (r))

			

sheet_to_json这里有个参数很奇怪,他文档示例里面的header
在这里插入图片描述
在这里插入图片描述
代码里面也确认有这个参数
用‘A’的时候,他会把json的属性名称都用字母表示,这样你就不用像我排序那节里面说的还需要一堆操作去获取属性名称了。
用string[]的时候也没问题,就是如果你给的List不够长。比如文件有6个列,你只给了5个string,会导致文件被截断成5列。
这个number的参数我很奇怪,一直没办法成功。我的理解是应该是指定一个行来生成属性名称
他的原文Create an array of arrays of JS values from a worksheet
但是我设置成啥数字都没效果,升级成文档对应的19版本也不行。使用时请注意。

排序

			// 指定排序的规则
			let sortList = sortSetting.split('|')
			// 指定排序列
			let sortColNum = utils.decode_col(sortCol)
            let sortColName = columns[sortColNum]
			// 过滤数据
            json_data = json_data.filter(item=>{
                return sortList.indexOf(item[sortColName]) >= 0
            })
            // 数据排序
            json_data.sort(function(a,b){
                return sortList.indexOf(a[sortColName]) - sortList.indexOf(b[sortColName]);
            });

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/356410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMvc介绍。

目录 1、SpringMvc概述 1、基本介绍 2、工作流程 3、bean加载控制 二、请求 1、请求映射路径 2、请求方式 3、请求参数 4、请求参数(传递json数据) 5、日期类型参数传递 三、响应 四、REST风格 1、REST简介 2、RESTful入门案例 3、RESTfu…

信号完整性设计规则之串扰最小化

本文内容从《信号完整性与电源完整性分析》整理而来,加入了自己的理解,如有错误,欢迎批评指正。 1. 对于微带线和带状线,保持相邻信号路径的间距至少为线宽的2倍。 减小串扰的一种方式就是增大线间距,使线间距等于线…

GeniE 实用教程(三)属性

目 录一、前言二、材料属性三、截面属性3.1 梁横截面3.2 板壳厚度3.3 截面赋予四、截面偏置4.1 梁偏置4.2 板壳偏置五、局部轴方向5.1 梁的局部轴5.2 板壳的法向六、水力属性6.1 湿表面属性6.2 水动力参数七、参考文献一、前言 SESAM (Super Element Structure Anal…

23 pandas Excel文件的拆分与合并

文章目录一个文件夹下多个工作簿的合并【单独Sheet】同一工作簿中多个Sheet合并ExcelWriter针对不同工作表的操作将一个工作表拆分成多个工作表将一个工作表拆分成多个工作簿一个文件夹下多个工作簿的合并【单独Sheet】 1把文件夹下所有的文件都遍历出来2循环读取文件放入一个…

【C++】再谈vscode界面调试C++程序(linux) - 知识点目录

再谈vscode界面调试C程序(linux) 配套文档:vscode界面调试C程序(linux) 命令解释 g -g ../main.cpp 编译main.cpp文件; -g:生成调试信息。编译器会在可执行文件中嵌入符号表和源代码文件名&…

程序员必备的技能-深入理解 Linux 内核拆解

841 页的《深入理解 Linux内核》堪称经典,时隔多年打开,泛黄的纸张上面仍然跳跃出一个个让人心潮澎湃的知识点,突然让我想起一位微信朋友的昵称:知识的舔狗!拆,开始~前言第一章 绪论Linux与其他类Unix内核…

springmvc汽车企业公司网站的系统设计 java ssm

红旗汽车走进社区,走进生活,成为当今生活中不可缺少的一部分。随着汽车行业的发展,加强管理和规范管理司促进红旗汽车网站健康发展的重要推动力。在我国迎来良好的发展机遇,但同时也确实有许多问题的需要研究和探讨。系统主要完成…

pvs中pv显示[unknown]解决方法、正确剔除一个vg流程方法【不影响vg已有的lv数据】、vgs容量和硬盘容量显示不一致解决方法

文章目录pvs中pv显示[unknown]解决方法报错产生情况报错说明解决方法解决方法【无法修复情况,重要!!!】解决方法【正常情况下】正常的剔除一个vg流程【不影响vg已有lv】环境准备强制剔除正常剔除vgs容量和硬盘容量显示不一致解决方…

Mr. Cappuccino的第42杯咖啡——Kubernetes之Pod控制器(一)

Kubernetes之Pod控制器Pod控制器介绍ReplicaSet弹性扩容弹性缩容使用scale命令进行扩容或者缩容更新镜像删除ReplicaSetDeployment弹性扩容与缩容删除Deployment更新镜像重建更新滚动更新版本回退Pod控制器介绍 Pod是Kubernetes集群中能够被创建和管理的最小部署单元。所以需要…

Beats:使用 fingerprint 来连接 Beats/Logstash 和 Elasticsearch

针对带有 HTTPS 访问的 Elasticsearch 集群来说,在我之前的很多文章,我都习惯于使用集群的证书来访问 Elasticsearch。你可以参考我之前的文章 “Elastic Stack 8.0 安装 - 保护你的 Elastic Stack 现在比以往任何时候都简单”。这是一种非常简便的方法。…

一文搞懂 DevOps

前言 DevOps作为一个热门的概念,近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。 那么,DevOps是什么呢? 有人说它是一种方法,也有人说它是一种工具&#…

github上传本地文件详细过程

repository 也就是俗称的仓库 声明:后续操作基于win10系统 前提:有一个github账号、电脑安装了git(官方安装地址) 目的: 把图中pdf文件上传到github上的个人仓库中 效果: 温馨提示: git中复制: ctrl insert&#xf…

【JavaWeb】一文学会JPA

✅✅作者主页:🔗孙不坚1208的博客 🔥🔥精选专栏:🔗JavaWeb从入门到精通(持续更新中) 📋📋 本文摘要:本篇文章主要介绍JPA的概念、注解实现ORM规范…

微信小程序学习第11天——Vant Weapp组件库、API Promise化、全局数据共享Mobx、分包

目录一、小程序对npm 的限制二、使用Vant Weapp组件库1、安装组件2、使用组件3、定制全局样式三、API Promise化1、下载miniprogram-api-promise2、引入3、使用四、全局数据共享五、分包1、分包概念2、使用分包3、独立分包4、分包预下载一、小程序对npm 的限制 在小程序中使用…

数值方法笔记2:解决非线性方程

1. 不动点定理及其条件验证2. 收敛阶、收敛检测与收敛加速2.1 如何估计不动点迭代的收敛阶xk1g(xk){x}_{{k}1}{g}\left({x}_{{k}}\right)xk1​g(xk​)2.2 给定精度的情况下,如何预测不动点迭代需要迭代的次数2.3 如何加快收敛的速度2.4 停止不定点迭代的条件2.5 不动…

基于Transformer的NLP处理管线

HuggingFace transformers 是一个整合了跨语言、视觉、音频和多模式模态与最先进的预训练模型并且提供用户友好的 API 的AI开发库。 它由 170 多个预训练模型组成,支持 PyTorch、TensorFlow 和 JAX 等框架,能够在代码之间进行互操作。 这个库还易于部署&…

【Leedcode】数据结构中链表必备的面试题(第一期)

链表必备的面试题 (附图解和源码)(第一期) 文章目录链表必备的面试题 (附图解和源码)(第一期)一、第一题1.题目2.思路图解(1)pos是首链表(2&#…

基于SpringBoot+Vue的鲜花商场管理系统

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、…

【Vue3源码】第三章 readonly详解 从零实现Vue3 readonly API

【Vue3源码】第三章 readonly详解 从零实现Vue3 readonly API 前言 上一章节我们实现了effect函数的stop和onstop功能,至此effect函数源码的编写就暂时告一段落了,这一章我们继续解读Vue3源码,开始实现Vue3 Reactivity :core 中…

Java基础361问14问——为什么非静态内部类会默认持有外部类的引用?

在内存泄露问题排查中最常遇到就是 【非静态内部类默认持有外部类的引用】 文章目录1 字节码分析javac Activity.javajavap -c Activity.class2 静态内部类会持有外部类引用吗?参考文档// 简化处理相关代码 public class Activity {private Handler inner new Handler();priv…