xlsx.js导入excel 并获取表头

首先还是要先引入XLSX,然后通过以下操作可以获得表头

	import XLSX from "xlsx";
	  var excelFile;
      var reader = new FileReader();
      reader.readAsBinaryString(file);
      reader.onload = function(e) {
        var data = e.target.result;
        excelFile = XLSX.read(data, {
          type: "binary"
        });
        var headers_key = new Array();
        var headers = new Array();
        var str = XLSX.utils.sheet_to_json(
          excelFile.Sheets[excelFile.SheetNames[0]]
        );
       	//str后面的数字代表表头是从第几行开始的,自己根据情况修改
        for (var key in str[2]) {
          headers_key.push(key); //获取表头key
        }
        for (var i = 0; i < headers_key.length; i++) {
          headers.push(str[2][headers_key[i]]); //获取表头
        }

最后headers就是表头

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
处理任意Excel文件的表头和数据,可以使用`SheetJS`库和一些JavaScript代码来处理合并单元格和空数据问题。以下是一个示例代码: ```javascript const XLSX = require('xlsx'); // 读取Excel文件 const workbook = XLSX.readFile('file.xlsx'); const sheet_name_list = workbook.SheetNames; const worksheet = workbook.Sheets[sheet_name_list[0]]; const headerRange = XLSX.utils.decode_range(worksheet['!ref'].replace(/^[A-Z]+\d+:/, '')); const header = []; for (let i = headerRange.s.c; i <= headerRange.e.c; i++) { header.push(worksheet[XLSX.utils.encode_cell({ r: headerRange.s.r, c: i })].v); } // 处理数据 const dataRange = XLSX.utils.decode_range(worksheet['!ref']); const data = []; for (let i = dataRange.s.r + 1; i <= dataRange.e.r; i++) { const row = {}; for (let j = dataRange.s.c; j <= dataRange.e.c; j++) { const cell_address = { c: j, r: i }; const cell_ref = XLSX.utils.encode_cell(cell_address); if (worksheet[cell_ref]) { row[header[j - dataRange.s.c]] = worksheet[cell_ref].v; } else { row[header[j - dataRange.s.c]] = null; } } data.push(row); } // 处理合并单元格 for (const cell of worksheet['!merges'] || []) { const range = XLSX.utils.decode_range(cell); const first_row = range.s.r; const last_row = range.e.r; const first_col = range.s.c; const last_col = range.e.c; const value = worksheet[XLSX.utils.encode_cell({ r: first_row, c: first_col })].v; for (let i = first_row + 1; i <= last_row; i++) { data[i][header[first_col]] = value; } for (let i = first_col + 1; i <= last_col; i++) { for (let j = first_row; j <= last_row; j++) { data[j][header[i]] = ''; } } } console.log(data); ``` 这段代码首先使用`SheetJS`库中的`readFile`方法来读取任意Excel文件,并解析表头和数据。然后,它处理合并单元格和空数据,并将所有数据输出到控制台。 注意,在处理任意Excel文件时,需要使用`worksheet['!ref']`来访问表格的范围,而不是使用`utils.sheet_to_json`方法。此外,需要注意表头和数据的索引可能不同,需要进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值