文件格式转换

把我的悲惨故事说给大家乐呵乐呵:老板让运营把一些数据以json格式给我,当我看到运营在石墨文档上编辑的时候我人都傻了,我理解运营的艰难,可我也是真的难啊,在石墨文档编辑的眼花缭乱的,很多属性都错乱了(诸如把名字赋值给了爱好)。挨个调整半天,这种经历我可不想再来一次,考虑到后续还会使用,我决定写个工具给运营。

请添加图片描述

知识点:利用xlsx 对文件做格式转换

  • 在 React 中将 JSON 转换为 Excel 可以使用类似 js-xlsx 的库。
  • js-xlsx 是一个功能强大的 JavaScript 库,可以读写各种类型的表格,包括 Excel。

将XLSX转换成JSON格式

import * as XLSX from 'xlsx/xlsx.mjs';
import FileSaver from 'file-saver';function change_XLSX_TO_JSON(e) {// 获取上传的文件对象const { files } = e.target;// 通过FileReader对象读取文件const fileReader = new FileReader();fileReader.onload = (event) => {try {const { result } = event.target;// 以二进制流方式读取得到整份excel表格对象const workbook = XLSX.read(result, { type: "binary" });let data = []; // 存储获取到的数据// 遍历每张工作表进行读取(这里默认只读取第一张表)for (const sheet in workbook.Sheets) {if (workbook.Sheets.hasOwnProperty(sheet)) {// 利用 sheet_to_json 方法将 excel 转成 json 数据data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));// break; // 如果只取第一张表,就取消注释这行}}console.log(data);//将json转成blob,存入本地const blob = new Blob([JSON.stringify(data)], {type: "text/xlsx;charset=utf-8",});FileSaver.saveAs(blob, "data.js");} catch (e) {// 这里可以抛出文件类型错误不正确的相关提示console.log("文件类型不正确");return;}};// 以二进制方式打开文件fileReader.readAsBinaryString(files[0]);//清空input的值e.target.value = "";}

将JSON转换成XLSX格式

  //读取upload 的 json 文件的内容function change_JSON_XLSX(e) {const { files } = e.target;const fileReader = new FileReader();fileReader.readAsText(files[0], "UTF-8"); //读取文件fileReader.onload = function (evt) {//读取完文件之后会回来这里var fileString = evt.target.result; // 读取文件内容const ws = XLSX.utils.json_to_sheet(JSON.parse(fileString));const wb = XLSX.utils.book_new();XLSX.utils.book_append_sheet(wb, ws, "Sheet1");XLSX.writeFile(wb, "data.xlsx");};//情况input的值e.target.value = "";}

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

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

相关文章

[SWPUCTF 2021 新生赛]sql - 联合注入

这题可以参考文章:[SWPUCTF 2021 新生赛]easy_sql - 联合注入||报错注入||sqlmap 这题相比于参考文章的题目多了waf过滤 首先,仍然是网站标题提示参数是wllm 1、fuzz看哪些关键字被过滤:空格、substr、被过滤 2、?wllm-1/**/union/**/selec…

微信小程序 movable-area 区域拖动动态组件演示

movable-area 组件在小程序中的作用是用于创建一个可移动的区域,可以在该区域内拖动视图或内容。这个组件常用于实现可拖动的容器或可滑动的列表等交互效果。 使用 movable-area 组件可以对其内部的 movable-view 组件进行拖动操作,可以通过设置不同的属…

消息驱动 —— SpringCloud Stream

Stream 简介 Spring Cloud Stream 是用于构建消息驱动的微服务应用程序的框架,提供了多种中间件的合理配置 Spring Cloud Stream 包含以下核心概念: Destination Binders:目标绑定器,目标指的是 Kafka 或者 RabbitMQ&#xff0…

信息增益,经验熵和经验条件熵——决策树

目录 1.经验熵 2.经验条件熵 3.信息增益 4.增益比率 5.例子1 6.例子2 在决策树模型中,我们会考虑应该选择哪一个特征作为根节点最好,这里就用到了信息增益 通俗上讲,信息增益就是在做出判断时,该信息对你影响程度的大小。比…

抖音seo源代码开源部署----基于开放平台SaaS服务

抖音SEO搜索是什么? 抖音SEO搜索是指在抖音平台上进行搜索引擎优化(Search Engine Optimization)的一种技术手段。 通过优化抖音账号、发布内容和关键词等,提高抖音视频在搜索结果中的排名,从而增加视频曝光量和用户点…

ValueError: high is out of bounds for int32 报错

问题描述: 笔者在Windows 64位平台跑一个在Ubuntu上运行正常的程序时,出现了以下报错: 具体为: seed np.random.randint(0, 2 ** 32) # make a seed with numpy generatorFile "mtrand.pyx", line 763, in numpy.ra…

Moonbeam Ignite强势回归

参与Moonbeam上最新的流动性计划 还记得新一轮的流动性激励计划吗?Moonbeam Ignite社区活动带着超过300万枚GLMR奖励来啦!体验新项目,顺便薅一把GLMR羊毛。 本次Moonbeam Ignite活动的参与项目均为第二批Moonbeam生态系统Grant资助提案中获…

BaseQuickAdapter触底刷新实现

触底刷新实现 使用BaseQuickAdapter,在适配器中实现 LoadMoreModule即可,如下加上即可,无需多写代码 以下为分页实现: 视图中 // 获取加载更多模块loadMoreModule blogAdapter.getLoadMoreModule();loadMoreModule.setOnLoadMo…

无线振弦采集仪在岩土工程中如何远程监测和远程维护

无线振弦采集仪在岩土工程中如何远程监测和远程维护 随着岩土工程施工的不断发展和科技水平的不断提高,远程监测和远程维护设备也得到了广泛关注和应用。无线振弦采集仪是一种广泛应用于岩土工程中的测量仪器,在现代化施工中扮演着重要的角色。本文将就…

2023学生近视了用什么台灯好呢?好用预防近视的护眼台灯推荐

自从护眼台灯能够帮助孩子在写作业时能够缓解视觉疲劳以来,许多家长已经给孩子安排上来护眼台灯,护眼台灯能够提供良好的照明环境,并且能够让我们专心学习提高工作效率。但由于护眼台灯含有独家的黑科技技术,价格始终居高不下&…

【微信小程序开发】一文学会使用CSS样式布局与美化

引言 在微信小程序开发中,CSS样式布局和美化是非常重要的一部分,它能够为小程序增添美感,提升用户体验。本文将介绍如何学习使用CSS进行样式布局和美化,同时给出代码示例,帮助开发者更好地掌握这一技巧。 一、CSS样式布…

ssm+vue的公司人力资源管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的公司人力资源管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结…

【Overload游戏引擎分析】画场景栅格的Shader分析

Overload引擎地址: GitHub - adriengivry/Overload: 3D Game engine with editor 一、栅格绘制基本原理 Overload Editor启动之后,场景视图中有栅格线,这个在很多软件中都有。刚开始我猜测它应该是通过绘制线实现的。阅读代码发现&#xff0…

漏刻有时物联网环境态势感知大数据(设备列表、动态折线图)

物联网环境下的态势感知是指对物联网环境中的各种要素进行全面、实时、准确的监测、分析和预测,以实现网络态势的全面掌握和安全威胁的及时响应和处理。具体而言,态势感知以物联网环境为基础,利用各类传感器、数据采集设备和其他相关工具,对物联网设备、资产、数据流等进行…

【Python】语言学习

之前总觉得python简单,不当回事,直到自己动手连输出都写不出来。。于是开一篇专门练python的博客。 输出 Python初相识 (educoder.net) 常规输出 print("向上:%.2f,向下:%.2f" %(pow(1.001, 365),pow(0.999, 365))) …

论文笔记 A theory of learning from different domains

domain adaptation 领域理论方向的重要论文. 这篇笔记主要是推导文章中的定理, 还有分析定理的直观解释. 笔记中的章节号与论文中的保持一致. 1. Introduction domain adaptation 的设定介绍: 有两个域, source domain 与 target domain. source domain: 一组从 source dist.…

Java 面向对象的三大特性

面向对象编程有三大特征: 封装、继承和多态。 1.封装 1)封装介绍 封装(encapsulation)就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起数据被保护在内部.程序的其它部分只有通过被授权的操作[方法],才能对数据进行操作。 2)封装的理解和好处 隐…

Springboot使用ProcessBuilder创建系统进程执行shell命令备份数据库

文章目录 概要1、查看mysql版本2、相关依赖3、具体代码技术细节 概要 Springboot执行shell命令备份数据库。 1、查看mysql版本 mysql --version2、相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-star…

【力扣-每日一题】901. 股票价格跨度

暴力解法&#xff1a; class StockSpanner { private:vector<int> pri; public:StockSpanner() {}int next(int price) {pri.emplace_back(price);int count0;for(int ipri.size()-1;i>0;i--){if(pri[i]<price)count;else break;}return count;} };/*** Your Stoc…

Perforce发布《2023游戏开发与设计现状报告》,为游戏开发行业提供参考

近期&#xff0c;Perforce发布了《2023游戏开发与设计现状报告》。此报告调查了来自全球各地的游戏开发专业人士&#xff0c;了解他们面临的主要开发挑战、使用的工具和流程&#xff0c;以及目前最让他们对这个行业感到兴奋的方面。 龙智作为Perforce授权合作伙伴&#xff0c;…