xlsx.utils.sheet_to_json的{ header: 1 }起的作用,header属性的研究

这篇具有很好参考价值的文章主要介绍了xlsx.utils.sheet_to_json的{ header: 1 }起的作用,header属性的研究。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

XLSX.utils.sheet_to_json 是为了把excel里面的数据解析出来,这是它的定义:
xlsx.utils.sheet_to_json,vue,json,javascript,前端,node.js
其中,worksheet表示特定表名的工作表,opts属于可要可不要的参数。


opts也有几种类型:

export interface Sheet2JSONOpts extends DateNFOption {
    /** Output format */
    header?: "A"|number|string[];

    /** Override worksheet range */
    range?: any;

    /** Include or omit blank lines in the output */
    blankrows?: boolean;

    /** Default value for null/undefined values */
    defval?: any;

    /** if true, return raw data; if false, return formatted text */
    raw?: boolean;

    /** if true, skip hidden rows and columns */
    skipHidden?: boolean;

    /** if true, return raw numbers; if false, return formatted numbers */
    rawNumbers?: boolean;
}

其中,header表示控制输出的类型,range表示跳过的行,defavl表示默认值,为null和undefine时,会默认跳过。


对于header,也有几种类型
xlsx.utils.sheet_to_json,vue,json,javascript,前端,node.js

下面直接上例子:
这是我的excel数据:
xlsx.utils.sheet_to_json,vue,json,javascript,前端,node.js

这是代码1:
const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 1 })
console.log(outdata)

这是输出的结果1:
[
  [ 's', 'h', 'e', 't' ],
  [ 1, <1 empty item>, 2, 3 ],
  [ '测试1', '测试2', '测试3' ]
]
这是代码2:
const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 2 })
console.log(outdata)

这是输出的结果2:
[ { s: 1, e: 2, t: 3 }, { s: '测试1', h: '测试2', e: '测试3' } ]
这是代码3:
const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 8 })
console.log(outdata)

这是输出的结果3:
[ { s: 1, e: 2, t: 3 }, { s: '测试1', h: '测试2', e: '测试3' } ]

可以看出,
①当header 为1时,输出为一个二维数组,输出了所有数据,包含了空值项,但每行末尾空值不显示。
②当header不为1时,输出一个包含字符串的数组,不包含空值项,直接跳过空值。同时是一个以第一行为Key值的键值对。


这是代码4:
const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 'A' })
console.log(outdata)

这是输出的结果4:
[
  { A: 's', B: 'h', C: 'e', D: 't' },
  { A: 1, C: 2, D: 3 },
  { A: '测试1', B: '测试2', C: '测试3' }
]

可以看出,当参数为“A”时,是一个以excel的ABCDE等为key值的键值对,默认也不显示空值。


这是代码5:
const outdata=XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header:  ["A","C",1,3] })
console.log(outdata)

这是输出的结果5:
[
  { '1': 'e', '3': 't', A: 's', C: 'h' },
  { '1': 2, '3': 3, A: 1 },
  { '1': '测试3', A: '测试1', C: '测试2' }
]
这是代码6:
const outdata=XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header:["A","C",1,3,6,"N"] })
console.log(outdata)

这是输出的结果6:
[
  { '1': 'e', '3': 't', A: 's', C: 'h' },
  { '1': 2, '3': 3, A: 1 },
  { '1': '测试3', A: '测试1', C: '测试2' }
]

可以看出,当参数是字符数组时,输出是以字符数组的字符为key值得键值对。
同时有这些特性:
①每个字符的序号与excel原始数据对应,我的excel只有四列数据,这里无论你的字符数组有多长,也只会取前四个。
②不同字符,以阿拉伯数字从小到大优先排列,后面字母从A到Z排列。


一般情况我们都使用,{ header: 1 },只有这个会生成二维数组,输出每一行数据,并且不是键值对!

具体详情可见我参考的文档文章来源地址https://www.toymoban.com/news/detail-820331.html

到了这里,关于xlsx.utils.sheet_to_json的{ header: 1 }起的作用,header属性的研究的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python 读写 json,csv,txt,docx,xlsx,xls文件大全

    最近再处理数据的时候,总会用到读写json,csv,xlsx和xls文件代码 这里就做个总结记录一下 扩展: json.loads(line)和 json.load(line) 通用写法: 1.2.1 list类型写入 1.2.2 dict类型写入 注意:json.dump()将Python对象序列化为JSON格式,并将其写入文件中。 扩展:json.dumps()和 json.dump() 2.2.1

    2024年02月06日
    浏览(33)
  • Refused to set unsafe header “cookie“

    记 web端微信登陆之后,保存登录状态的问题: 发送给后台的后续请求在head添加 但是报错 Refused to set unsafe header “cookie” 原因是w3c中不允许手动设置cookie 解决方法: 1.把Cookie改成Authorization,让后端从Authorization中拿到相关登录信息; 2.前端来做登录,每次发送openid给后台,

    2024年02月06日
    浏览(43)
  • 【Jmeter】信息头管理器(HTTP Header Manager) - 发送Post请求数据为json格式

    将 json 格式 请求数据输入 HTTP 请求 中的 Body Data (消息体数据 / 请求入参) 右击 Thread (线程组) 鼠标移至 Add (添加) → Config Element (配置元件) 点击 HTTP Header Manager (HTTP信息头管理器) 即可完成信息头管理器新建 进入 HTTP Header Manager (HTTP信息头管理器) 页面 点击下方 Add (添加) Nam

    2024年02月07日
    浏览(31)
  • Spring MVC -- 获取参数(普通对象+JSON对象+URL地址参数+文件+Cookie/Session/Header)

    目录 1.获取参数 1.1获取单个参数 1.2获取多个参数 传参注意事项: 2.获取对象  3.后端参数重命名@RequestParam 4.获取JSON对象@RequestBody 5.从 URL 地址中获取参数 @PathVariable 6.上传文件 @RequestPart 7.获取Cookie/Session/Header 7.1 获取 Request 和 Response 对象 7.2 获取Cookie (1)Servlet 获取 Cooki

    2024年02月16日
    浏览(31)
  • JSON parse error: Cannot deserialize value of type `java.util.Date`

    不能解析我传递的日期数据:”2022-06-08“,它默认是要这样的\\\"yyyy-MM-dd HH:mm:ss\\\"。 直接在数据库对应的接受类对象和实体类对象上加日期转化的注解。 可能由于种种环境原因,不知道哪个一定正确,下面三个注解任选其一。 我发现我公司是用的DateUtil。

    2024年02月17日
    浏览(46)
  • SAP ABAP中使用函数ALSM_EXCEL_TO_INTERNAL_TABLE读取EXCEL中不同的SHEET数据

    SAP提供了标准的读取EXCEL的函数(ALSM_EXCEL_TO_INTERNAL_TABLE),但是此标准函数无法满足对同一EXCEL 进行不同SHEET的数据读取,一下方法就是教你如何通过修改程序来实现ALSM_EXCEL_TO_INTERNAL_TABLE读取多个SHEET; 一、拷贝ALSM_EXCEL_TO_INTERNAL_TABLE函数,拷贝时函数组选择自定义函数组 二

    2024年02月14日
    浏览(30)
  • Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析

    @[TOC]Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析 前言 做开发项目时,总会遇到这些包,理清他们的层次,非常有助于我们对于项目的理解和建立。 现阶段CSDN上貌似没有很系统,很详细的关于层级类的解释。因此总结了一下自己的经

    2024年02月07日
    浏览(29)
  • 解决Post请求JSON列表参数格式报错:JSON parse error: Cannot deserialize value of type `java.util.ArrayList<x>

    今天在调试接口的时候,遇到一个问题。有一个post请求的json body参数, 然后vo里面只有两个属性,id和一个集合。 然后使用apifox调试接口的时候,发现json解析异常: 通过提示信息,可以发现是因为json结构不对导致解析不了。 我原来是这样传的,会报错: 应该给list加一层数

    2024年02月11日
    浏览(41)
  • HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.List

     今天与到一个报错,分享一下这个报错的解决方案,都是自己学的太浅的原因导致卡了半个小时 如图: 在Post请求的过程中,前端是一个JSON对象以请求体的形式传到了后端,而后端是以一个列表接收,这样导致的问题就是接收的不是一个对象 在Post请求想要接收请求体的数

    2024年01月16日
    浏览(43)
  • [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

    如果你的node.js提示: [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 那么,代表你返回了结果,但是最后你又不小心再返回了一次。通常是由于方法没有进行等待,或者多条件判断缺漏造成的。 情况一:返回机制问题 通过success/error模式来返回结果,取消最终的

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包