nodejs 读取xlsx 文件转json 格式(包含表格时间类型)

news2024/11/17 17:46:05

需求概要:从xlsx 文件中读取内容转化成想要的json 格式,用于web 读取数据

newDoc.xlsx文档内容大概:

 本内容主要是更新前端公告内容,

const xlsx = require('node-xlsx')
const fs = require('fs')
const moment = require('moment')

//转换
function convertXLSXToJson(type) {
  let initId = 460 // 起始id
  let MaxIndex = 33 // 文件读取的行数
  let ReverseOrder = initId + MaxIndex - 2
  // 读取xlsx
  const sheets = xlsx.parse('newDoc.xlsx', { cellDates: true })
  // 获取xlsx第一个标签栏的数据,要转换其他标签栏的数据就改变sheet[0]中的值
  const sheetData = sheets[0].data
  // 定义数据列表
  let testList = []
  // 循环拼装数据
  sheetData.forEach((item, index) => {
    if (index == 0) {
      // 去除标题栏
      return
    } else {
      if (index < MaxIndex) {
        //可以自定义转换的数据格式
        var date = new Date(item[0]) //转换xlsx 中的日期时间
        let date_new = moment(date).add(1, 'days').format('YYYY-MM-DD')
        //unshift id倒序
        testList.push({
          plus: false,
          articleId: ReverseOrder--,
            date: date_new,
          
          title: type == 'zh' ? item[3] : type == 'ch' ? item[1] : item[2],
          link: type == 'en' ? item[4] || item[5] : item[5]//说明:官网英文端有英文稿件的放英文稿件链接,没有英文稿件的放中文内容链接
        })
           
      }
    }
  }) 
  const jsonObj = testList 
  fs.writeFileSync('./convertXLSXToJson/'+type + '_JSON_Result.json', JSON.stringify(jsonObj))
  console.log(type+'文件转换完成')
}

convertXLSXToJson('ch') //中文简体
convertXLSXToJson('zh') //中文繁体
convertXLSXToJson('en') //中文简体

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

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

相关文章

双非本大二上岸大厂——念念不忘,必有回响

⭐️前言⭐️ 博主就读于一所普通的学校&#xff08;双非本&#xff09;&#xff0c;在大二下学期3月份开始网上投递简历&#xff0c;历时近百余天&#xff0c;投递简历500&#xff0c;面试近40余场&#xff0c;最终在6月份学期末&#xff0c;斩获了两个大厂offer&#xff08;北…

最小栈——力扣155

方法&#xff1a;辅助栈 这些函数中只有求最小值函数需要借助辅助栈 代码如下&#xff1a; class MinStack {stack<int> x_stack;stack<int> min_stack; public:MinStack() {min_stack.push(INT_MAX);}void push(int val) {x_stack.push(val);min_stack.push(…

使用Java计算课程绩点、课程学分绩点、总绩点

1、定义实体类 实体类中包括属性表 名称释义xuefen该课程学分chengji该课程取得的成绩xuefenjidian该课程取得的学分绩点xuefen该课程取得的学分 其中有式子&#xff1a; j i d i a n ( c h e n g j i − 50 ) 10.0 jidian \frac{(chengji-50)}{10.0} jidian10.0(chengji−…

【Azure】解析 Microsoft Defender for Cloud:云安全的保护与管理

你在使用自己的电脑的时候&#xff0c;作为安全防护你可能直接装个杀毒软件&#xff0c;或者什么xx管家之类的&#xff0c;那么你是否有想过&#xff0c;如果我有一套云服务之后&#xff0c;我应该如何进行安全防护呢&#xff1f;本文带你了解在 Azure 云中的安全防护体系&…

同余最短路

同余最短路就是把每一个同余类当成一个结点&#xff0c;在同余类之间建边&#xff0c;然后跑最短路 答案统计的时候对每个同余类单独计算贡献 题意&#xff1a; 思路&#xff1a; 答案可以对模X的所有同余类计算贡献 设dis[i]为在模X意义下&#xff0c;Y和Z之后%X余数为i的…

数据库练习

数据库练习 建立三张表&#xff0c;以及表中的联系 由于学生表中存在外键&#xff0c;所以我们需要先创建课程表和班级表 课程表 mysql> create table course(-> course_id int primary key auto_increment comment 课程编号,-> course_name varchar(10) not null…

【C++初阶】C++入门——引用

文章目录 一、引用的概念二、共用同一块空间验证三、引用的特性3.1 引用在定义时必须初始化3.2 一个变量可以有多个引用3.3 引用不能改变 四、引用的使用场景4.1 做参数4.2 做返回值 五、传值、传引用效率比较六、常引用6.1 权限放大——不被允许6.2 权限平移6.3 权限缩小6.4 赋…

MYSQL索引为啥要用B+树储存数据呢

首先我们来分析一下需求 MYSQL索引需要怎样的数据结构 为了防止数据因为特(duan)殊(kai)情(dian)况(yuan)丢失,我们的数据肯定是要持久化的,也就是保存在硬件(磁盘)里面,而我们知道 磁盘相对于内存来讲 速度要慢了几万倍 甚至即使万倍 所以我们必须减少磁盘的I/O操作 再有呢…

电子时钟制作(瑞萨RA)(10)----电容触摸配置

概述 这篇文档将创建一个使用 e2 studio 集成 QE 的电容式触摸应用示例。 硬件准备 首先需要准备一个开发板&#xff0c;这里我准备的是芯片型号R7FA2E1A72DFL的开发板&#xff1a; 视频教程 https://www.bilibili.com/video/BV14h4y1E7py/ 电子时钟制作(10)----电容触摸配…

python接口自动化(二十三)--unittest断言——上(详解)

简介 在测试用例中&#xff0c;执行完测试用例后&#xff0c;最后一步是判断测试结果是 pass 还是 fail&#xff0c;自动化测试脚本里面一般把这种生成测试结果的方法称为断言&#xff08;assert&#xff09;。用 unittest 组件测试用例的时候&#xff0c;断言的方法还是很多的…

MyBatis查询数据库(1)

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 经过前⾯的学习咱们 Spring 系列的基本操作已经实现的差不多了&#xff0…

DEJA_VU3D - Cesium功能集 之 111-风场(局部)效果

前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小140个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(每篇博文都会奉上完整demo的源代码…

LeetCode-每日一题【2095.删除链表的中间节点】

题目 给你一个链表的头节点 head 。删除 链表的 中间节点 &#xff0c;并返回修改后的链表的头节点 head 。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点&#xff08;下标从 0 开始&#xff09;&#xff0c;其中 ⌊x⌋ 表示小于或等于 x 的最大整数。 对于 n 1、…

event.stopPropagation()和event.preventDefault()之间的联系

目录 阻止事件冒泡&#xff0c;阻止默认事件&#xff0c;event.stopPropagation()和event.preventDefault()&#xff0c;return false的区别 今天来看看前端的冒泡和事件默认事件如何处理 1.event.stopPropagation()方法 这是阻止事件的冒泡方法&#xff0c;不让事件向documen上…

数据集托管平台汇总比较

目录 引言数据集托管平台需要满足的条件&#xff1a;☆☆☆ Hugging Face Dataset☆☆ 魔搭平台☆ OpenDataLab总结 引言 最近考虑构建一些测试数据集评测基准&#xff0c;用于评测算法在数据集上的效果。不同于论文中用到的公开数据集&#xff0c;这里构建的数据集更有针对性…

电影天堂.

提取 最新综艺资源推荐 的电影名字和下载链接 """ 1、先从首页网址定位 2、在定位的的位置找到子页面的链接地址 3、请求子页面的链接地址&#xff0c;拿到我们想要的下载地址 """"""1、定位到最新综艺资源推荐""&quo…

惊!ChatGPT处理文章仅需一秒钟,提取大纲、重写不在话下!

前言 在上篇文章中&#xff0c;我们实现了批量抓取到微信公众号文章的链接地址&#xff0c;那么这篇文章将继续为大家介绍&#xff0c;如何根据链接爬取到文章内容&#xff0c;并且利用chantGPT对文章进行处理。 爬取文章内容 我们已经有了很多文章的链接&#xff0c;这些链…

2023全新UI 哈希玛特HashMart全开源盲盒系统源码下载

ashMart&#xff08;哈希玛特&#xff09;是首款开源的面向生产的高性能、易开发的盲盒系统。它包含&#xff1a;首页看板、商品管理、订单管理、盲盒管理、系统管理、会员管理、权限管理、记录管理&#xff0c;并且拥有完善的搭建使用手册和接口文档。是帮助您快速落地盲盒商城…

tarjan算法(相关概念、Tarjan求最大强连通分量、割点、求桥、缩点)

什么是连通分量 无向图 G 的最大连通子图称为 G 的连通分量。 注&#xff1a;这里的最大连通子图的含义为&#xff1a;此图为 G 的连通子图&#xff0c;将 G 的任意一个点加到盖子图中之后&#xff0c;此子图将不再连通。 比如这一张图中&#xff0c;很显然&#xff0c;我用…

如何识别网站是否有WAF

使用工具识别&#xff1a;wafw00f https://github.com/EnableSecurity/wafw00f 前提&#xff1a;本地配置好python环境安装&#xff1a;在此目录下创建CMD窗口&#xff0c;输入 python setup.py install 。安装成功后&#xff0c;显示版本信息. 使用&#xff1a;进入wafw00…