1、遇到的问题

  • excel 表格某个单元格为空的时候,解析的时候会 跳过数据为空的单元格 ,也就导致有空数据的那一行数据对不上
  • 当在本地编辑使用 Excel 的时候,难免会对单元格进行设置对应的格式。使用 XLSX对表格进行解析,也会因为单元格的格式, 会对单元格的数据进行格式化

    2、使用

    1. import XLSX from "xlsx";
    2. // 获取文件内容
    3. getFileContent(file: File): Promise<any> {、
    4. return new Promise((resolve, reject) => {
    5. const fileName = file.name;
    6. const fileExt = fileName.substring(fileName.lastIndexOf("."));
    7. const reader: any = new FileReader();
    8. reader.readAsArrayBuffer(file);
    9. reader.onload = () => {
    10. try {
    11. let binary = "", readydata: any = "", outdata = [];
    12. const bytes = new Uint8Array(reader.result);
    13. for (let i = 0; i < bytes.byteLength; i++) {
    14. binary += String.fromCharCode(bytes[i]);
    15. }
    16. readydata = XLSX.read(binary, { type: "binary" });
    17. outdata = XLSX.utils.sheet_to_json(
    18. readydata.Sheets[readydata.SheetNames[0]],
    19. {
    20. defval: '', // 遇到空白的单元格,不会忽略
    21. raw: false // 不对文件进行格式化
    22. }
    23. );
    24. console.log(outdata)
    25. resolve(outdata);
    26. } catch (err) {
    27. console.log(err);
    28. reject(new Error("文件读取失败"));
    29. }
    30. };
    31. })
    32. }