js-xls是一款客户端读取Excel的插件,亲测IE11、FireFox、Chrome可用,读取速度也可观。

插件Demo地址:http://oss.sheetjs.com/js-xlsx/    http://oss.sheetjs.com/js-xls/

Excel列信息

js代码如下:

  1. var X = XLS;
  2. function to_json(workbook) {
  3. var result = {};
  4. workbook.SheetNames.forEach(function (sheetName) {
  5. var roa = XLS.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
  6. if (roa.length > 0) {
  7. result[sheetName] = roa;
  8. }
  9. });
  10. return result;
  11. }
  12.  
  13. function fixdata(data) {
  14. var o = "", l = 0, w = 10240;
  15. for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
  16. o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
  17. return o;
  18. }
  19.  
  20. function process_wb(wb,type) {
  21. var output = "";
  22. switch (type) {
  23. case "json":
  24. output = JSON.stringify(to_json(wb), 2, 2);
  25. break;
  26. case "form":
  27. output = to_formulae(wb);
  28. break;
  29. default:
  30. output = to_csv(wb);
  31. }
  32. //if (out.innerText === undefined) out.textContent = output;
  33. //else out.innerText = output;
  34. return output;
  35. }
    47
  36. function ReadExcel(out) {
  37. var selCodes = $("#selProductCodes").val();
  38. var exlData = JSON.parse(out);
  39. var regCode = /^[1-9]\d*$/;
  40. var regQty = /^\d*$/;
  41. var ids = [];
  42. var msg = "";
  43. if (exlData.Sheet1 == null || exlData.Sheet1 == undefined) {
  44. msgErro("未查询到Excel文件中的数据!");
  45. saveLoading('hide');
  46. return;
  47. }
  48. for (var i = 0; i < exlData.Sheet1.length; i++) {
  49. var sysno = exlData.Sheet1[i].ProductSysNo;
  50. var qty = exlData.Sheet1[i].Qty;
  51. if (sysno == undefined)
  52. msg += "Qty列数据为 " + qty + " 的行,缺少ProductSysNo信息!\r\n";
  53. else if (qty == undefined)
  54. msg += "ProductSysNo列数据为 " + sysno + " 的行,缺少Qty信息!\r\n";
  55. else if (!regCode.test(sysno))
  56. msg += "ProductSysNo列数据为 " + sysno + " 不是有效的商品编号!\r\n";
  57. else if (!regQty.test(qty))
  58. msg += "Qty列数据为 " + qty + " 不是有效的数量格式!\r\n";
  59. else {
  60. ids.push(sysno);
  61. }
  62. }
         //do something
    }
  63. var xlf = document.getElementById('xlf'); //<input type="file" id="xlf" />
  64. function handleFile(e) {
  65. if (e.target.files[0].name.indexOf(".xls") < 0) {
  66. msgErro("请选择.xls格式文件!");
  67. return;
  68. }
  69. saveLoading('show');
  70. rABS = false;
  71. use_worker = false;
  72. var files = e.target.files;
  73. var output = "";
  74. var f = files[0];
  75. {
  76. var reader = new FileReader();
  77. var name = f.name;
  78. reader.onload = function (e) {
  79. if (typeof console !== 'undefined') console.log("onload", new Date(), rABS, use_worker);
  80. var data = e.target.result;
  81. if (use_worker) {
  82. xw(data, process_wb);
  83. } else {
  84. var wb;
  85. if (rABS) {
  86. wb = X.read(data, { type: 'binary' });
  87. } else {
  88. var arr = fixdata(data);
  89. wb = X.read(btoa(arr), { type: 'base64' });
  90. }
  91. output = process_wb(wb, "json");
  92. ReadExcel(output);
  93. }
  94. };
  95. if (rABS) reader.readAsBinaryString(f);
  96. else reader.readAsArrayBuffer(f);
  97. }
  98. }
  99.  
  100. if (xlf.addEventListener) xlf.addEventListener('change', handleFile, false);

js-xls插件下载地址:下载插件

JS客户端读取Excel文件插件js-xls使用方法的更多相关文章

  1. C# 读取EXCEL文件的三种经典方法

    1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...

  2. ASP.NET读取EXCEL文件的三种经典方法(转)

    1.方法一:采用OleDB读取EXCEL文件:  把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:public DataSet ExcelToDS(string Path) {  str ...

  3. ASP.NET读取EXCEL文件的三种经典方法

      1.方法一:采用OleDB读取EXCEL文件:   把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { ...

  4. (转)C# 读取EXCEL文件的三种经典方法

    原文地址http://www.open-open.com/code/view/1420029490093 1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取 ...

  5. R读取excel文件乱码 read.xlsx() 解决方法

    1. 参考[R语言]R读取含中文excel文件,read.xlsx乱码问题  该文章总结得很好,可以直接跳到最后看博主的总结. 2. 如果依旧是乱码那么用read.xlsx2()去读取excel文件, ...

  6. 转:C# 读取EXCEL文件的三种经典方法

    1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...

  7. Java读取Excel文件(包括xls和xlsx)的样例程序

    样例程序如下所示,其中: parseXls()函数依赖于jxl,只能读取xls格式文件: parseExcel()函数依赖于apache poi,能够读取xls和xlsx两种格式的文件. jxl的依赖 ...

  8. .Net读取Excel文件时丢失数据的问题 (转载)

    相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...

  9. Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决

    1.问题描述: 该错误通常发生在应用函数读取excel文件(后缀xls或xlsx)时. 应用xlsread函数读取提示服务器出现意外情况: 应用importdata读取时提示can‘t open fi ...

随机推荐

  1. mysql innodb myisam 主要区别与更改方法

    一.主要区别 1.事务处理 innodb 支持事务功能,myisam 不支持. Myisam 的执行速度更快,性能更好.   2.select ,update ,insert ,delete 操作   ...

  2. Spring4.0学习笔记(5) —— 管理bean的生命周期

    Spring IOC 容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务 Spring IOC 容器对Bean的生命周期进行管理的过程: 1.通过构造器或工厂方法 ...

  3. Html jquery实现根据 IOS和Android访问跳转

    <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script> ...

  4. 转载:Linux的vim三种模式

    一般模式:在Linux终端中输入“vim 文件名”就进入了一般模式,但不能输入文字. 编辑模式:在一般模式下按i就会进入编辑模式,此时就可以写程式,按Esc可回到一般模式. 命令模式:在一般模式下按: ...

  5. 读书笔记 -part1

    自从毕业以后到现在~看的书是越来越少了 の其实好像貌似从来没有认认真真的看书  除非工作遇到难于解决的问题迫不得已才去翻书看 有些问题也是莫名其妙的就这样解决了  于是乎被人美名其曰“高人”或&quo ...

  6. Linux下动态链接库和静态链接库

    第一部分:编译过程 先了解一下linux下C代码的编译过程,C代码的编译,一般分成四个阶段,包括:预编译,编译,汇编和链接,这四个阶段的分工是 预处理过程,负责头文件展开,宏替换,条件编译的选择,删除 ...

  7. php发送post请求的三种方法示例

    本文分享下php发送post请求的三种方法与示例代码,分别使用curl.file_get_content.fsocket来实现post提交数据,大家做个参考. php发送post请求的三种方法,分别使 ...

  8. nginx配置记录

    user www-data;worker_processes 1; error_log /var/log/nginx/error.log;pid /var/run/nginx.pid; events ...

  9. PHP之mysql笔记

    1:在php中提供了两个用于连接MySQL数据库服务器的函数. (1)int mysql_connect(hostname[:port][:/path/to/socket],user,pass). ( ...

  10. LED驅動電路概述

    LED是一種固體光源,當它兩端加上正向電壓,半導體中的少數載流子和多數載流子發生復合,放出的過剩能量將引起光子發射.采用不同的材料,可制成不同顏色有 發光二極管 . 隨著對LED研究的進一步深入,其光 ...