excel表的前端展示与数据修改

想问一下如何实现几千张excel表的前端展示与数据修改?
这几千张表内容不同格式不同,以及还要插入图片。

服务端解决,web端对于文件处理的能力有限

1、数据存储:需要将这几千张表的数据存储到数据库中,可以采用关系型数据库或者NoSQL数据库,具体选择哪一种可以根据实际情况进行选择。

2、数据展示:需要使用前端框架(如React、Vue、Angular等)来展示这些Excel表的数据,可以使用表格组件来展示数据。对于不同格式不同的表格,可以针对每种格式写不同的表格组件来展示。

3、数据修改:需要提供编辑功能,可以使用表格组件的编辑功能来实现。对于插入图片,可以使用HTML5的File API来实现上传图片功能,同时在数据库中存储图片的URL,然后在表格中展示图片。

4、性能优化:展示几千张Excel表的数据会涉及到大量的数据处理和渲染,需要进行性能优化。可以使用虚拟滚动来优化表格的渲染,即只渲染可见区域的数据,同时需要对数据进行分页。

实现几千张Excel表的前端展示与数据修改需要涉及到多个方面,需要进行系统设计和开发。建议先进行需求分析和系统设计,然后再进行具体的开发和实现。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/702247
  • 除此之外, 这篇博客: 纯前端上传文件获取数据并解析,将数据导出生成文件中的 上传Excel文件获取数据并解析 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 用到xlsx组件
    安装xlsx

    npm i xlsx
    

    引入xlsx

    import XLSX from 'xlsx';
    

    方法

    submitFile(event){
          if (!event.currentTarget.files.length) {
            return
          }
          const that = this
          // 拿取文件对象
          var f = event.currentTarget.files[0]
          // 用FileReader来读取
          var reader = new FileReader()
          // 重写FileReader上的readAsBinaryString方法
          FileReader.prototype.readAsBinaryString = function (f) {
            var binary = ''
            var reader = new FileReader()
            reader.onload = function (e) {
              // 读取成Uint8Array,再转换为Unicode编码(Unicode占两个字节)
              var bytes = new Uint8Array(reader.result)
              var length = bytes.byteLength
              for (var i = 0; i < length; i++) {
                binary += String.fromCharCode(bytes[i])
              }
              // 接下来就是xlsx了,具体可看api
              that.wb = XLSX.read(binary, {
                type: 'binary'
              })//解析表格内容
              console.log(that.wb);
              that.onChangeSheet(); 
            }
            reader.readAsArrayBuffer(f)
          }
          reader.readAsBinaryString(f)
        },
        onChangeSheet(val){
          const that = this;
          if(val>=0) that.sheet = val;//that.sheet 选择第几个sheet表,从0开始
          that.excelData = XLSX.utils.sheet_to_json(that.wb.Sheets[that.wb.SheetNames[that.sheet]]);//取指定sheet表中的数据
          that.columns = Object.keys(that.excelData[0]).map(ele=>({
            key: ele,
            title: ele,
            dataIndex: ele,
            width: 120
          }));
        }
    
  • 您还可以看一下 曾贤志老师的【曾贤志】Excel条件格式课程中的 1.4 条件格式从零学起(文本条件)小节, 巩固相关知识点