JS 读取本地Excel文件
首先我们先引用一个Excel的类库xlsx.full.min.js
中间处理:
'use strict';
var ExcelReader = {
isFirstRead: true,
fixdata: function (data) {
var o = "",
l = 0,
w = 10240;
for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
return o;
},
read: function (file, callback, sheetIndex) {
var self = this;
var isABS = false;
if (this.isFirstRead) {
this.extendFileReader();
}
if (!file) {
return;
}
if (!sheetIndex) {
sheetIndex = 0;
}
var f;
if (file.rawFile) {
f = file.rawFile;//使用Kendo Ui的上传控件
}
else {
f = file;
}
var reader = new FileReader();
reader.onload = function (e) {
var data;
var wb;
if (!isABS) {
data = e.target.result;
}
else {
data = e;
}
if (!isABS && !data.slice) {
isABS = true;
reader.readAsBinaryString(f);
return;
}
if (!isABS) {
wb = XLSX.read(btoa(self.fixdata(data)), {
type: 'base64'
});
}
else {
wb = XLSX.read(btoa(data), {
type: 'base64'
});
}
callback(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[sheetIndex]]));
};
reader.readAsArrayBuffer(f);
},
extendFileReader: function () {
this.isFirstRead = false;
if (!FileReader.prototype.readAsBinaryString) {
FileReader.prototype.readAsBinaryString = function (fileData) {
var binary = "";
var self = this;
var reader = new FileReader();
reader.onload = function (e) {
var bytes = new Uint8Array(reader.result);
var length = bytes.byteLength;
for (var i = 0; i < length; i++) {
binary += String.fromCharCode(bytes[i]);
}
self.onload(binary);
}
reader.readAsArrayBuffer(fileData);
}
}
}
}
使用方式:
$("#ImportCtrl").kendoUpload({
select: function (e) {
$.each(e.files, function (index, value) {
ExcelReader.read(value, importFilesSuccess);
});
}
}).data("kendoUpload"); var importFilesSuccess = function (d) {
//d:JSON DATA
}
JS 读取本地Excel文件的更多相关文章
- js 解析本地Excel文件!
通常,一般读取Excel都是由后台来处理,不过如果需求要前台来处理,也是可以的.. 1.需要用到js-xlsx,下载地址:js-xlsx 2.demo: <!DOCTYPE html>&l ...
- js读取本地txt文件中的json数据
list.txt内容 [ {"optionKey":"1", "optionValue":"Canon in D"}, ...
- 手工创建tomcat应用,以及实现js读取本地文件内容
手工创建tomcat应用: 1.在webapps下面新建应用目录文件夹 2.在文件夹下创建或是从其他应用中复制:META-INF,WEB-INF这两个文件夹, 其中META-INF清空里面,WEB-I ...
- 根据NPOI 读取一个excel 文件的多个Sheet
大家都知道NPOI组件可以再你本地没有安装office的情况下来 读取,创建excel文件.但是大家一般都是只默认读取一个excel文件的第一个sheet.那么如果要读取一个excel 的所有shee ...
- jQuery ajax读取本地json文件
jQuery ajax读取本地json文件 json文件 { "first":[ {"name":"张三","sex": ...
- JavaScript读取本地json文件
JavaScript读取本地json文件 今天调试了一上午,通过jQuery读取本地json文件总是失败,始终找不出原因,各种方法都试了 开始总以为是不是json格式的问题.高了半天不行 后来读了一个 ...
- 读取本地json文件,转出为指定格式json 使用Base64进行string的加密和解密
读取本地json文件,转出为指定格式json 引用添加Json.Net 引用命名空间 using Newtonsoft.Json //读取自定目录下的json文件StreamReader sr = ...
- POI读取/写入Excel文件
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- 读取本地excel发短信
package com.cmcc.zysoft.sellmanager.controller; import java.io.File; import java.io.FileInputStream; ...
随机推荐
- 什么是最小可行性数据产品(MVP)?如何用它做机器学习?
- js 解决图片居中问题
下述方法能够解决图片居中问题: (1)宽一些或者高一些(相对父元素的大小):图片在父元素的可视范围内显示图片的中间位置 (2)小一些(相对父元素的大小):图片在父元素的可视范围内居中显示 实现原理:根 ...
- 进度条 --- socket ---socketserver
TCP:可靠的面向连接的协议,传输效率低,全双工通信,流数据传输.运用:web浏览器,电子邮件,文件传输程序 UDP:不可靠的,无连接的服务,传输效率高,面向数据包的传输,只能发短消息.运用:dns ...
- oracle报ora-12519错误
具体信息如下: ora-12519 tns:no appropriate service handler found the connection descriptor used by the cli ...
- 77. sqlserver 锁表解决方式
select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tra ...
- leetcode127
class Solution { public int ladderLength(String beginWord, String endWord, List<String> wordLi ...
- 创建类type (底层代码)
类的创建时是用type 实现的 def __init__(self, name): self.name = name def fun(self): print("%s is talking' ...
- 8 python 抽象类
1.抽象类 --类似接口 接口的概念: 自己提供给使用者来调用自己功能的方式\方法\入口, 1.1.java中接口 interface =================第一部分:Java 语言中的 ...
- 从底层谈WebGIS 原理设计与实现(四):WebGIS中通过行列号来换算出多种瓦片的URL 之离线地图
从底层谈WebGIS 原理设计与实现(四):WebGIS中通过行列号来换算出多种瓦片的URL 之离线地图 作者:naaoveGI… 文章来源:naaoveGIS 点击数:1759 更 ...
- oracle惯用缩写的含义
$ORACLE_HOME/bin下的utilities解释Binary First Available Description----------------- ...