客户端读取并显示XLXS文件

我们可以借助第三方类库进行功能的实现:比如

Frameworks and Bundlers | SheetJS Community Edition

第一步:安装

第二步:内容的引入

import * as XLSX from 'xlsx'
import { useState } from "react";

export default function App() {
    const [data,setData] = useState([]);

    const handeFileUpload = (e) => {
        const reader = new FileReader();  //创建文件读取器
        reader.readAsBinaryString(e.target.file[0]); //读取文件内容
        reader.onload = (e) => {
            const data = e.target.result; //获取读取结果
            console.log(data) //打印的是二进制的数据信息,所以我们可以使用XLSX进行数据的一个读取
            const workbook = XLSX.read(data,{type:"binary"}); //以二进流方式读取得到
            const sheetName = workbook.SheetNames[0]; //获取表名
            const sheet = workbook.Sheets[sheetName]; //根据表面获取表
            const parseData = XLSX.utils.sheet_to_json(sheet); //解析表数据
            console.log(parseData); //此时打印的则是excel中的表格内容
            setData(parseData)
        }
    };
  return (
    <div>
        <h1>客户端读取并显示XLXS文件</h1>
        <input type="file" accept='.xlsx,.xls' onChange={handeFileUpload} />

        {/* 写一个判断 */}
        {data.length > 0 && (
            <table>
                {/* 表头 */}
                <thead>
                    <tr>
                        {Object.keys(data[0]).map((key,index) => (
                            <th key={index}>{key}</th>
                        ))}
                    </tr>
                </thead>
                <tbody>
                    {data.map((item,index) => {
                        return <tr key={index}>
                            {Object.keys(item).map((key,index) => {
                                return <td key={index}>{item[key]}</td>
                            })}
                        </tr>
                    })}
                </tbody>
            </table>
        )}
    </div>
  )
}

以下就是实现的效果

希望以上内容对您有所帮助

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值