导入相关函数
导入用于将用户本地的excel文件读取出来并解析,需要使用到 Blob 对象中的一些方法,暂时无法兼容 IE11及以下的浏览器,仅支持 Edge、Firefox、Chrome等现代浏览器
importExcel参数配置
核心方法,用于读取用户选择的Excel信息,文件读取基于 FileReader,所以对浏览器版本要求较高
参数名称 | 描述 | 默认值 |
---|---|---|
files | FileList 对象(通常来自于 input[type='file'] 元素的 files 属性 ) |
undefined |
opt | 导出参数配置,详见下方描述 | undefined |
callback | 完全读取完毕的回调函数,传入一个参数「data」表示所有数据的集合 | undefined |
opt参数配置
参数名称 | 描述 | 默认值 |
---|---|---|
header | 导入参数的headers,支持"A"、1等,详见XLSX官方文档 | A |
range | 读取的范围,支持数字、字符等,详见XLSX官方文档 | null |
fields | 可以在读取的过程中进行数据梳理,参数意义请参见「filterExportData参数配置」 | null |
由于处理过程中会抛出一些异常,所以请使用 try{}catch(e){}接收并提示用户!
如果对导出数据格式的键不满意,可以有两种方式梳理:
- 调用 filterImportData(data, fields)
- 直接在 importExcel() 的 opt 配置中进行数据梳理
filterImportData参数配置
梳理导出的数据,包括字段排序和多余数据过滤,与 importExcel 的 field 字段含义一致
参数名称 | 描述 | 默认值 |
---|---|---|
data | 导入的数据(文件维度) | undefined |
fields | 可以在读取的过程中进行数据梳理,参数意义请参见「filterExportData参数配置」 | undefined |
导入调用样例
具体亦可访问 http://excel.wj2015.com 在线体验
$(function(){
// 监听上传文件的事件
$('#LAY-excel-import-excel').change(function(e) {
var files = e.target.files;
try {
// 方式一:先读取数据,后梳理数据
excel.importExcel(files, {}, function(data) {
console.log(data);
data = excel.filterImportData(data, {
'id': 'A'
,'username': 'B'
,'experience': 'C'
,'sex': 'D'
,'score': 'E'
,'city': 'F'
,'classify': 'G'
,'wealth': 'H'
,'sign': 'I'
})
console.log(data);
});
// 方式二:可以在读取过程中梳理数据
excel.importExcel(files, {
fields: {
'id': 'A'
,'username': 'B'
,'experience': 'C'
,'sex': 'D'
,'score': 'E'
,'city': 'F'
,'classify': 'G'
,'wealth': 'H'
,'sign': 'I'
}
}, function(data) {
console.log(data);
});
} catch (e) {
layer.alert(e.message);
}
});
});