利用JavaScript将Excel转换为JSON示例代码


Posted in Javascript onJune 14, 2019

前言

JSON是码农们常用的数据格式,轻且方便,而直接手敲JSON却是比较麻烦和令人心情崩溃的(因为重复的东西很多),所以很多码农可能会和我一样,选择用Excel去输入数据,然后再想办法转换成JSON格式。今天教大家使用JS 将 Excel 转为 JSON的方法。

1.新建HTML文件

<html lang="en"> 
<title> Convert Excel File To JSON </title>
<head>
 <script>
 </script>
</head>
<body>
</body>

我们可以使用<input>标签接收上传文件。代码如下:

<input type="file" id="fileUploader" name="fileUploader" accept=".xls, .xlsx"/>

2.监听input change 事件

<script>
 $(document).ready(function(){
  $("#fileUploader").change(function(evt){
   // 上传文件处理逻辑...
  });
 });
</script>

3.读取上传文件

在这里,我们假设用户只上传一个文件。

var selectedFile = evt.target.files[0];

接下来,我们将使用FileReader读取该文件数据。从这个FileReader,我们可以读取excel文件中的数据作为二进制字符串。然后我们使用XLSX,它是SheetJS js-xlsx的内置工具,将我们的二进制字符串转换为JSON对象。引入 XLSX

<script lang =“javascript”src =“dist/xlsx.full.min.js”> </ script>

您可以下载源码xlsx.full.min.js

完整代码

<html lang="en"> 

<title> Convert Excel File To JSON </title>

<head>
 <script src="js/jquery.js"> </script>
 <script lang="javascript" src="js/xlsx.full.min.js"></script>
 <script>
  $(document).ready(function(){
   $("#fileUploader").change(function(evt){
     var selectedFile = evt.target.files[0];
     var reader = new FileReader();
     reader.onload = function(event) {
      var data = event.target.result;
      var workbook = XLSX.read(data, {
       type: 'binary'
      });
      workbook.SheetNames.forEach(function(sheetName) {
       var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
       if (XL_row_object.length > 0) {
        document.getElementById("jsonObject").innerHTML = JSON.stringify(XL_row_object);
       }
       
      })
     };
     reader.onerror = function(event) {
     console.error("File could not be read! Code " + event.target.error.code);
    };
    // 读取上传文件为二进制
    reader.readAsBinaryString(selectedFile);
   });
  });
 </script>
</head>
<body>
 <input type="file" id="fileUploader" name="fileUploader" accept=".xls, .xlsx"/>
 </br></br>
 JSON : <label id="jsonObject"> </label>
</body>

作为示例,我们使用如下的excel表格。

利用JavaScript将Excel转换为JSON示例代码

读出json数据如下

利用JavaScript将Excel转换为JSON示例代码

大功告成!!!

SheetJS 还有很多实用的功能,具体更多功能请自行去github查看githu地址

演示源码地址code

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 数组循环引起的思考
Jan 01 Javascript
基于JQuery 的消息提示框效果代码
Jul 31 Javascript
js multiple全选与取消全选实现代码
Dec 04 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
Feb 19 Javascript
jquery.validate提示错误信息位置方法
Jan 22 Javascript
Bootstrap Fileinput文件上传组件用法详解
May 10 Javascript
js制作网站首页图片轮播特效代码
Aug 30 Javascript
angular源码学习第一篇 setupModuleLoader方法
Oct 20 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
Jul 07 Javascript
javaScript中&quot;==&quot;和&quot;===&quot;的区别详解
Mar 16 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
Sep 12 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
Jun 14 #Javascript
Vue动态创建注册component的实例代码
Jun 14 #Javascript
基于Proxy的小程序状态管理实现
Jun 14 #Javascript
深度了解vue.js中hooks的相关知识
Jun 14 #Javascript
Vue 实现前进刷新后退不刷新的效果
Jun 14 #Javascript
在Vue中使用icon 字体图标的方法
Jun 14 #Javascript
移动端底部导航固定配合vue-router实现组件切换功能
Jun 13 #Javascript
You might like
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
Python2.x与Python3.x的区别
2016/01/14 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
Django继承自带user表并重写的例子
2019/11/18 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
大专应届生个人简历的自我评价
2013/10/15 职场文书
本科生的职业生涯规划范文
2014/01/09 职场文书
公立医院改革实施方案
2014/03/14 职场文书
大学生简历求职信
2014/06/24 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
人民调解协议书范本
2014/10/11 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python