文件格式转换

news2024/12/26 21:34:54

把我的悲惨故事说给大家乐呵乐呵:老板让运营把一些数据以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.coloradmin.cn/o/1067489.html

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

相关文章

关于seata启动时连接数据库异常,Mysql版本8.0

异常报错: ERROR --- [ionPool-Create-1772825962] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/seata?useUnicodetrue&rewriteBatchedStatementstrue, errorCode 0, state 08001 > com…

工信部教考中心:什么是《研发效能(DevOps)工程师》认证,拿到证书之后有什么作用!(上篇)丨IDCF

在计算机行业中,资质认证可以证明在该领域内的专业能力和知识水平。各种技术水平认证也是层出不穷,而考取具有公信力和权威性的认证是从业者的首选。同时,随着国内企业技术实力的提升和国家对于自主可控的重视程度不断提高,国产证…

最有趣的代码or最蠢的代码?

如何写漂亮的代码 “愚蠢的代码” 是一个主观的说法,因为代码的质量取决于许多因素,包括编写代码的人的经验、知识水平以及代码的上下文。但是,有一些常见的编程实践,如果被采用,可能会导致代码被认为是愚蠢的或低质量…

深入理解Docker:简化部署与管理的利器

文章目录 引言Docker简介Docker的背景和发展Docker的优势和特点 Docker的基本概念和架构镜像(Image)容器(Container)仓库(Repository)Docker架构 Docker的常用命令和操作Docker的安装和配置Docker镜像的管理…

墨者学院——登录密码重置漏洞分析溯源

先用17101304128的进行抓包 点击获取验证码 发现没有验证码,所以要用18868345809拿验证 抓包后,把17开头的电话号码改成了18开头的,然后获取验证码 然后用17开头的电话号码重置,用18开头的验证码 进行重置密码,拿到…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(七)放大镜实战

个人实战文档 本次实战是对自己整个api阶段的总结。 参考效果如下地址: http://erabbit.itheima.net/#/product/3995139 本次实战主要分为以下几个模块。 顶部导航模块 需求: 顶部导航开始不显示等页面滑到主导航栏,这个新顶部导航栏滑…

日志导致的io负载高和cpu飙升问题

1.问题 项目上线前需要对接口进行性能测试,发现有2个查询接口性能始终达不到上线要求 2.分析过程 取线程快照 打印线程堆栈日志: 通过上面发现54个线程处于 waiting on condition 状态,在等待写入磁盘日志,所以断定瓶颈在写入日志io这块所以将日志打印关闭,再部署一版试…

深度学习笔记之优化算法(三)动量法的简单认识

机器学习笔记之优化算法——动量法的简单认识 引言回顾:条件数与随机梯度下降的相应缺陷动量法简单认识动量法的算法过程描述附:动量法示例代码 引言 上一节介绍了随机梯度下降 ( Stochastic Gradient Descent,SGD ) (\text{Stochastic Gradient Descen…

再不跳槽,就晚了....

从时间节点上来看,3月、4月是每年跳槽的黄金季! 以 BAT 为代表的互联网大厂,无论是薪资待遇、还是平台和福利,都一直是求职者眼中的香饽饽,“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里&a…

基于SVM+TensorFlow+Django的酒店评论打分智能推荐系统——机器学习算法应用(含python工程源码)+数据集+模型(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境方法一方法二 安装其他模块安装MySQL 数据库 模块实现1. 数据预处理1)数据整合2)文本清洗3)文本分词 相关其它博客工程源代码下载其它资料下载 前言 本项目以支…

三十一、【进阶】B+树的演变过程

1、B树简单介绍 (1)介绍:B树也属于B树,是B树的变种 (2)特点:所有的数据都位于叶子节点上,叶子节点上的所有元素形成了一个单项链表 (3)图示: 2…

多微信如何自动发朋友圈?

想要做私域,朋友圈是我们不可忽视的一部分。无论是促进潜在客户下单,还是引导老客户二次下单,朋友圈的经营需要我们用心去打造。 这怎么理解呢?我们可以在一天内定时发送几条朋友圈,分段时间发,这样微信好…

av_read_frame error: Connection reset by peer

播放器加上这个选项即可:setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT,"reconnect",1) 具体出处参照源码:

小程序 词云图 echarts-for-weixin-wordcloud

GitHub - clydee-geng/echarts-for-weixin-wordcloud: echarts词云微信小程序版 这个是适配与小程序版的词云图,之前有找到ucharts来代替,但是ucharts的词云图功能有两个缺点:1.无法根据值的大小显示词云图的大小;2.显示的顺序是…

前端 vs 后端️: 深入探讨Web开发的两大王国

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

数据防泄密软件排行榜(企业电脑防泄密软件哪一款好用,有哪些推荐)

在当今信息化社会,数据已经成为了企业的重要资产。然而,数据的安全问题也日益突出,尤其是数据的泄露,不仅会导致企业的商业秘密被竞争对手获取,还可能引发一系列的法律问题。因此,数据防泄密软件的重要性不…

九、互联网技术——记忆背诵

文章目录 一、网络操作系统的功能和特性二、网络操作系统的逻辑构成四、主动攻击和被动攻击五、安全机制和安全服务六、信息与数据七、数据处理与数据管理八、数据模型九、概念模型的E-R表示方法十、四种数据模型十一、数据库系统组成十二、DBMS主要功能十三、数据库系统的3级模…

【yolo系列:YOLOV7改进-添加EIOU,SIOU,AlphaIOU,FocalEIOU.】

yolo系列文章目录 在YoloV7中添加EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU. 2023-2-7 更新 yolov7添加Wise-IoUB站链接 重磅!!!!! YOLO系列模型改进损失函数 文章目录 yolo系列文章目录一、初始的yolov7损失函数二、首…

P1017 [NOIP2000 提高组] 进制转换

#include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std;void zhuan(int n,int r) {if(n0) return ;int mn%r;//m为余数 if(m<0) m-r,nr;//如果余数小于0&#xff0c;转化为正数//将余数转化为ascll码方便输出…

.NET 使用 ZXing.Net 生成二维码,并识别

前言 前面已经分享给很多创建二维码&#xff0c;条形码。。。等一系列的方式 各有优缺点&#xff0c;暂时不做评价。今天推荐ZXing.Net 。也是比较全面的一种方式&#xff0c;还支持解码 .NET 二维码生成库-QrCodeGenerator商业库–Spire.BarcodeThoughtWorks.QRCodeQRCoderS…