前端解析csv文件

1,278 阅读1分钟
// 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状态的数字

常量描述
EMPTY0还没有加载任何数据
LOADING1数据正在被加载
DONE2已完成全部的读取请求

result

文件的内容,该属性在会在读取完成之后有效,数据格式取决于使用哪些方法来进行读取操作

事件

onabort

该事件会在读取操作被中断时触发

onerror

该事件会在读取操作发生错误时触发

onload

该事件会在读取操作完成时触发

方法

abort()

中断读取操作,此时readyState属性为DONE

readAsArrayBuffer()

读取指定的流中的内容,完成后result属性中保存的是读取文件的ArrayBuffer数据对象

readAsBinaryString()

读取指定的流中的内容,完成后result属性中保存的是读取文件的原始二进制数据

readAsDataURL()

读取指定的流中的内容,完成后result属性中保存的是data: URL 格式的Base64字符串

readAsText()

读取指定的流中的内容,完成后result属性中保存的是文件内容拼接的字符串