前端上传表格,变成可处理的JSON数据

前言:在对于刚刚入行的前端小伙伴们,对于项目功能我相信肯定有一种心态,后台能处理的数据就都有后台来处理,前端不做任何处理最好,哈哈,
1.前端处理的数据不能持久化,就算是数据持久化也都是依赖h5的新特性,做本地存贮一个是存在浏览器缓存上面(Session),一种则是通过浏览器存在电脑的硬盘上面(Local),这对前端处理数据大大的有点难度
2.依赖了接口这样每次调用接口来处理这个数据,感觉方便了很多,但是后端又不愿意了,哈哈
——>
哔哔一大堆, 废话不多说上代码

//下载依赖
yarn add xlsx

下载好了依赖的插件后,到咱们开始写代码的时候,

import { Button, Upload} from 'antd'; // 不知道这是干啥的就去 antDesign UI官网上面查看一下这个玩意是啥哈
import { UploadOutlined, PlusOutlined } from '@ant-design/icons';
    <Upload
        fileList={[]}
        accept=".xlsx, .xls" // 我这个只是上传了这么解析 xlsx的表格的,如果是要解析pdf doc的那您就自求多福吧
        beforeUpload={(file, list) => uploadBeforeUpload(file, list)}
    >
     <Button
        style={{ marginTop: 15, marginBottom: 15 }}
         icon={<UploadOutlined />}
     >
        上传表格
      </Button>
    </Upload>

咱们上一步已经把上传的按钮功能写了,但是上传处理的方法还没有写,哈哈哈

    const uploadBeforeUpload = (file) => {
        const fileReader = new FileReader();
        // 以二进制方式打开文件
        fileReader.readAsBinaryString(file);
        fileReader.onload = (event) => {
            const { result } = event.target;
            // 以二进制流方式读取得到整份excel表格对象
            const workbook = XLSX.read(result, { type: 'binary' });
            let data = []; // 存储获取到的数据
            // 遍历每张工作表进行读取(这里默认只读取第一张表)
            for (const sheet in workbook.Sheets) {
                if (workbook.Sheets.hasOwnProperty(sheet)) {
                    // 利用 sheet_to_json 方法将 excel 转成 json 数据
                    data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
                    // break; // 如果只取第一张表,就取消注释这行
                }
            }
            console.log(data);
        };
    };

这里的data就是你要处理的解析出来的JSON了,不过有一点你要注意,因为你要解析的表格头部的列是中文的,你可能得转一下,或者在表格写的时候按照中文的来渲染数据 👇

    const columns = [
        {
            title: '分配给司机的数量',
            dataIndex: '分配给司机的数量',
            ellipsis: true,
            hideInSearch: true,
            align: 'center',
        },
    ];
            <Table
                style={{ padding: '0 10px 10px 10px', backgroundColor: '#fff' }}
                scroll={{ x: 4500 }}
                dataSource={dataList} // 此处是data
                columns={columns}
            />

上面渲染表格,我是以中文的表头来渲染的,有没有感觉很low,其实可以在刚取出来data的时候可以手动给他变成英文的名

说到最后希望这篇帖子能够帮助到你,代码可以抄但是更得理解,多敲才是王道希望你对代码有着真挚的感情,对自己敲出的代码都有不一样的自信,感谢您的浏览,愿你出走半生,归来仍是少年

### starRC、LEF 和 DEF 文件的 EDA 工具使用教程 #### 关于 starRC 的使用说明 starRC 是由 Synopsys 开发的一款用于寄生参数提取 (PEX) 的工具,在 detail routing 完成之后被调用,以提供精确的电阻电容延迟分析数据[^2]。该工具能够处理复杂的多层互连结构并支持多种工艺节点。 对于 starRC 的具体操作指南,通常可以从官方文档获取最权威的信息。访问 Synopsys 官方网站的技术资源页面,可以找到最新的产品手册以及应用笔记等资料。此外,还可以通过在线帮助系统获得交互式的指导和支持服务。 #### LEF 和 DEF 文件格式解析及其在 Cadence 中的应用 LEF(Library Exchange Format)和 DEF(Design Exchange Format)是两种广泛应用于集成电路布局布线阶段的标准文件格式之一[^3]。前者主要用于描述标准单元库中的元件几何形状;后者则记录了整个芯片版图的设计信息,包括但不限于各个模块的位置关系、网络连接情况等重要细节。 当涉及到这些文件类型的编辑或读取时,Cadence 提供了一系列强大的平台级解决方案,比如 Virtuoso Layout Editor 就可以直接打开并修改 LEF/DEF 格式的项目工程。为了更好地理解和运用这两种文件格式,建议参阅 Cadence 发布的相关培训材料或是参加其举办的专项课程学习活动。 ```bash # 示例命令:查看 LEF 或 DEF 文件内容 cat my_design.lef cat my_design.def ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值