将excel表格导入到数据库,有多种办法,可以使用数据库管理工具,可以使用python写个脚本,也可以用java开发个小功能,还可以用php来开发。但是当条件受限的时候,没有工具,没有脚本运行环境,这几个现成的方法都无法施展。唯独javascript还能自由的运行,只能基于JavaScript来写脚本,读取excel文件,然后导入到数据库。

1、先准备两个知识点:

H5赋予了JavaScript读取本地文件的能力。

HTML5技术出现以后,提供了从本地读取文件的API,因此可以在前端使用JavaScript脚本调用HTML5的API来读取本地文件。

SheetJS能够在前端操作excel

SheetJS有一个社区版本,是纯JS的可以读取和到处excel的工具库。

2、开始写脚本。

制作一个html页面,放一个上传文件的input和一个提交按钮。

<input type="file" name="xlfile" id="xlf" /> ... or click here to select a file
<input type="button" name="btn" id="btn" value="import" onclick="aimport()"/>

提交按钮绑定一个onclick动作,当点击按钮的时候触发aimport(),aimport()获取到文件对象,并调用do_file来处理文件对象。

function aimport(){var files = $("input[name=xlfile]")[0].files;do_file(files);
}

do_file里用到了FileReader,这是HTML5支持的一个文件阅读器,读取文件内容传递给SheetJS处理。

var do_file = (function() {return function do_file(files) {rABS = false;var f = files[0];var reader = new FileReader();reader.onload = function(e) {var data = e.target.result;if(!rABS) data = new Uint8Array(data);process_wb(X.read(data, {type: rABS ? 'binary' : 'array'}));};if(rABS) reader.readAsBinaryString(f);else reader.readAsArrayBuffer(f);};
})();

process_wb方法分为两个步骤,先将数据里的excel的工作表读出来,并转换为json对象。

var to_json = function to_json(workbook) {var result = {};workbook.SheetNames.forEach(function(sheetName) {var roa = X.utils.sheet_to_json(workbook.Sheets[sheetName], {header:1});if(roa.length) result[sheetName] = roa;});return JSON.stringify(result, 2, 2);};

然后循环读取json对象的每条数据,使用Jquery的ajax功能,构造数据结构,提交给制定的api,完成数据的导入。


output = to_json(wb); break;
output_obj = JSON.parse(output);
vals = output_obj['打印机'];
vals_length= vals.length-1;
console.log(vals_length);
var i=1;
ref = setInterval(function(){if(i==vals_length){clearInterval(ref);              }           console.log(vals[i]);value = vals[i];var datastring = '';datastring = {'userId':'','ip':value[6],'mac':value[7],'name':value[9],'storagePlace':value[11],'office':value[1],'department':'','user':value[12],'passport':value[13],'purpose':value[14]==1?'communal':'personal','isRadiate':value[10]==1?'true':'false','note':value[15]};$.ajax({type: "POST",url: "http://localhost:8080/api/printer", data: datastring,dataType: "json",success: function(msg) {console.log(msg);}      });i=i+1;},1000);

ajax是异步的,再配合定时器,可以完美的控制程序。

最终实现效果如下:

使用JavaScript读取excel表格数据并导入到数据库相关推荐

  1. android 自动读取ecxel_android 读取excel表格数据,并存入数据库

    最近策划提了个需求,但是已有的数据不能满足需要,于是内容资源部制作了份excel表格补充.So,任务来了,读取并使用excel数据.由于感觉excel表格里的数据使用频率较高,那么就不能等到需要了才去 ...

  2. 将Excel表格数据批量导入MySQL数据库表中

    在实际的生产开发需求中很多时候生产数据不一定是通过数据库进行导入,而是通过Excel表格的形式传入形式,这时候需要程序员进行自动化的导入. 手动导入数据库,效率相对来说太慢,因此需要使用技巧,实现批量 ...

  3. 使用最新的poi-4.1.0.jar导入导出Excel表格——读取Excel表格数据用法

    使用最新的poi-4.1.0.jar导入导出Excel表格--读取Excel表格数据用法 其中主要的一点心得就是在switch语句哪里进行读取数据转换时,我看到网上的一些用法都是使用 HSSFCell ...

  4. python读取excel表格数据

    python操作excel主要用到xlrd和xlwt两个库,xlrd读取表格数据,支持xlsx和xls格式的excel表格:xlwt写入excel表格数据 一.python读取excel表格数据 1. ...

  5. Java实现Excel表格数据的导入(兼容xls与xlsx)

    Java实现Excel表格数据的导入(兼容xls与xlsx) 目录 依赖 代码 注意点 目录 依赖 <!-- 添加POI的依赖用于Excel的操作 --><dependency> ...

  6. linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据

    Qt 读取Excel表格数据 生成Excel表格并写入数据 Qt 读取Excel表格数据 生成Excel表格并写入数据 修改.pro文件,增加 axcontainer QT += axcontaine ...

  7. python 如何读取excel表格数据

    文章目录 前言 python 读取excel 表格 前言 如何用python读取excel表格数据呢 ? python 读取excel 表格 首先需要配置好环境,需要下载 xlrd 包: # 如果不指 ...

  8. 读取EXCEL表格数据到MATLAB成为矩阵

    读取EXCEL表格数据到MATLAB成为矩阵 data=xlsread('filename','sheet','range') 其中,'filename'为文件路径及文件名,'sheet'为数据表名称 ...

  9. Qt之如何读取Excel表格数据

    Qt之如何读取Excel表格数据 概述: 代码示例: .pro: 需要包含的头文件: readExcelData.h: readExcelData.cpp: over: 概述: 大家好我是背锅侠&qu ...

  10. Matlab中读取excel表格数据

    一:Matlab中读取excel表格数据步骤讲解: 第二步:  第三步:  第四步:  第五步:  第六步    第七步:  输入之后按回车键,就会出现相应的波形: 效果图:

最新文章

  1. ZZCustomAlertView - 一个高度自定义的iOS模态弹窗
  2. LatentFusion:华盛顿大学与英伟达联合提出6D姿态估计新方法
  3. SAP Spartacus CurrentProductService返回的null对象
  4. Lachesis Shield 设计上的抉择
  5. Sqoop数据迁移工具的使用
  6. 网络爬虫--8.编码趣闻
  7. jQuery 的禁用和只读 ---防暴动处理
  8. SetWindowLong代码设置窗体borderStyle风格 TOOLWINDOW
  9. 如何告别脂肪肝?要注意什么?
  10. 月球 dem_通过“月球灾害”应对错误信息的流行
  11. python 汽车行业数据库_python3+Neo4j+flask,汽车行业知识图谱项目实战
  12. 计算机无法安装网卡驱动,电脑经验遇到网卡驱动安装不上的问题,该如何解决呢?一起来看看...
  13. android浏览器固定宽度,Android浏览器宽度拉伸到iframe内容宽度,尽管溢出:隐藏...
  14. 紫乌鸦服务器维护后多久刷,魔兽世界黑暗之星的灵爪飞鹰获取流程攻略 紫乌鸦坐骑刷新机制详解[多图]...
  15. 【转载】站在牛顿墓前 文/张琦(北京大学)
  16. NEO4J分析《权力的游戏》人物领土等关系
  17. 计算机内存的维修方法,电脑修理技巧之内存故障解决
  18. DGHV:整数上的同态加密(2)-解决噪声与构建全同态蓝图
  19. 2030年销售额突破200亿美元!瑞萨电子揭秘智能汽车版图
  20. NC瑞士军刀 网络工具

热门文章

  1. 数据库笔试题(答案)
  2. SBUS协议数据演示
  3. aiml简介+源代码解析+中文分词(java)
  4. Mac-录屏软件-视频转gif动图
  5. 查看服务器sftp用户信息,linux查看sftp服务器配置
  6. Web渗透测试-Xss跨站脚本攻击(Cross Site Scripting)
  7. Meshing Tutorials(网格划分教程)
  8. Win10安装Nek5000
  9. centOs中安装 IF.SVNadmin 及SVN过程详细
  10. SNMP-简单网络管理协议