前端表格解析方法

工具类文件

// fileUtils.ts

import { ref } from 'vue';
import * as xlsx from 'xlsx';

interface RowData {
  [key: string]: any;
}

export const tableData = ref<RowData[]>([]);

export async function handleFileSelect(url: string): Promise<void> {
  try {
    const response = await fetch(url);
    const blob = await response.blob();
    const reader = new FileReader();

    reader.onload = (e: ProgressEvent<FileReader>) => {
      if (e.target && e.target.result) {
        const data = new Uint8Array(e.target.result as ArrayBuffer);
        const workbook = xlsx.read(data, { type: 'array' });

        const worksheet = workbook.Sheets[workbook.SheetNames[0]];
        const jsonData = xlsx.utils.sheet_to_json(worksheet, { header: 1 }) as any[][];

        // 提取标题并保持其顺序
        const headers = jsonData[0];
        console.log('Extracted Headers:', headers);

        // 处理行(从索引1开始跳过标题)
        jsonData.slice(1).forEach((row) => {
          const rowData: RowData = {};
          headers.forEach((header, index) => {
            rowData[header] = row[index];
          });
          tableData.value.push(rowData);
        });

        console.log('Processed Table Data:', tableData.value);
      }
    };

    reader.readAsArrayBuffer(blob);
  } catch (error) {
    console.error('获取或读取文件时出错:', error);
  }
}

调用方法

const url ='https://xxxxx.xlsx';
    await handleFileSelect(url);

在这里插入图片描述

相关推荐

  1. 前端解析URL的两种方式

    2024-07-19 17:16:03       32 阅读
  2. 前端埋点解决方案

    2024-07-19 17:16:03       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 17:16:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 17:16:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 17:16:03       58 阅读
  4. Python语言-面向对象

    2024-07-19 17:16:03       69 阅读

热门阅读

  1. 第 8 章 虚拟文件系统(3)

    2024-07-19 17:16:03       19 阅读
  2. linux yum,rpm,dkpg,apt区别

    2024-07-19 17:16:03       20 阅读
  3. 【C++】C++中find_first_of函数解析

    2024-07-19 17:16:03       19 阅读
  4. PHP MySQL 读取数据

    2024-07-19 17:16:03       18 阅读
  5. Handler续谈(epoll)

    2024-07-19 17:16:03       17 阅读
  6. Git提交到错误分支怎么办?(解决办法)

    2024-07-19 17:16:03       21 阅读
  7. 在ubuntu系统上安装qt 2

    2024-07-19 17:16:03       19 阅读
  8. CONFIG_MTD_SPI_NOR_USE_4K_SECTORS

    2024-07-19 17:16:03       21 阅读
  9. 网络通信协议

    2024-07-19 17:16:03       13 阅读