利用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 模拟用户单击事件
Dec 31 Javascript
jQuery固定元素插件scrolltofixed使用指南
Apr 21 Javascript
javascript中递归函数用法注意点
Jul 30 Javascript
微信小程序 wxapp内容组件 progress详细介绍
Oct 31 Javascript
AngularJS 应用模块化的使用
Apr 04 Javascript
微信小程序实现获取小程序码和二维码java接口开发
Mar 29 Javascript
React如何实现浏览器打印部分内容详析
May 19 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
Sep 02 Javascript
jquery实现点击弹出对话框
Feb 08 jQuery
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 Javascript
vue实现在进行增删改操作后刷新页面
Aug 05 Javascript
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 面向对象的一个例子
2011/04/12 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php数组删除元素示例
2014/03/21 PHP
PHP异常处理浅析
2015/05/12 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
python实现批量监控网站
2016/09/09 Python
Python实现感知机(PLA)算法
2017/12/20 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python和Go语言的区别总结
2019/02/20 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
用Python创建简易网站图文教程
2021/06/11 Python
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL