// 1、通过input[file]获取到导入文件对象;
// 2、创建FileReader实例
const fReader = new FileReader();
// 3、获取内容(有中文内容时,第二个参数传入gb2312)
fReader.readAsText(file, 'gb2312');
// 4、处理获取内容
fReader.onloadend = (ev) => {
const { result } = ev.target;
const addList = csv2Array(result);
};
function csv2Array(data) {
// 截取每行内容
const result = data.split('\r\n').slice(1, -1);
// 对每行内容进行处理
return result.reduce((pre, next) => {
const [a, b, c, d, e] = next.split(',');
return pre;
}, []);
}
FileReader
属性(只读)
error
内容为在读取文件时发生的错误
readyState
标识FileReader状态的数字
常量 | 值 | 描述 |
---|---|---|
EMPTY | 0 | 还没有加载任何数据 |
LOADING | 1 | 数据正在被加载 |
DONE | 2 | 已完成全部的读取请求 |
result
文件的内容,该属性在会在读取完成之后有效,数据格式取决于使用哪些方法来进行读取操作
事件
onabort
该事件会在读取操作被中断时触发
onerror
该事件会在读取操作发生错误时触发
onload
该事件会在读取操作完成时触发
方法
abort()
中断读取操作,此时readyState属性为DONE
readAsArrayBuffer()
读取指定的流中的内容,完成后result属性中保存的是读取文件的ArrayBuffer数据对象
readAsBinaryString()
读取指定的流中的内容,完成后result属性中保存的是读取文件的原始二进制数据
readAsDataURL()
读取指定的流中的内容,完成后result属性中保存的是data: URL 格式的Base64字符串
readAsText()
读取指定的流中的内容,完成后result属性中保存的是文件内容拼接的字符串