vue + XLSX解析excel数据

博客内容讲述了如何使用XLSX库在JavaScript中读取和解析Excel文件,包括安装依赖、通过input标签获取文件、读取二进制字符串、转换日期格式以及处理数值格式问题。在优化部分,提到了使用'sheet_to_row_object_array'方法保持原始数据格式,避免数值格式转换问题。
摘要由CSDN通过智能技术生成

1、安装XLSX依赖。

2、通过input标签拿到file对象

      // 拿到所导入文件的名字(file是input标签拿到的文件信息)
      let fileName = file
      //定义reader,存放文件读取方法
      let reader = new FileReader()
      //启动函数
      reader.readAsBinaryString(fileName)
      //onload在文件被读取时自动触发
      reader.onload = e => {
        try {
          //workbook存放excel的所有基本信息
          const workbook = XLSX.read(e.target.result, {
            type: 'binary',
            cellDates: true
          })
          //定义sheetList中存放excel表格的sheet表,就是最下方的tab
          let sheetList = workbook.SheetNames // 工作表名称集合
          sheetList.forEach(name => {
            // 生成工作表名称集合
            let worksheet = workbook.Sheets[name] // 只能通过工作表名称来获取指定工作表
            let results = XLSX.utils.sheet_to_json(worksheet) // XLSX解析工作表信息
            console.log(results) // 这里results就是我们要拿到的信息
          })
        } catch (error) {
          this.$message.warning('文件类型不正确!')
        }
      }

2021-10-26优化:

//workbook存放excel的所有基本信息
const workbook = XLSX.read(e.target.result, {
      type: 'binary',
      cellDates: true,
      dateNF: 'yyyy-mm-dd' // 将日期格式化为2021-10-26的形式
})

/***************************/
// 使用中发现sheet_to_json的方法会将0.00  253.00这种格式转化为整数 0 253  所以这里改为sheet_to_row_object_array方法,并将raw设置为false,这样解析出的数据就是并没有做格式化的原始数据
let results = XLSX.utils.sheet_to_row_object_array(worksheet, {
    raw: false
}) // XLSX解析工作表信息
console.log(results) // 这里results就是我们要拿到的信息

{ int alpha = ((uint8_t *)sub_frame->data[3])[y * sub_frame->linesize[3] + x]; int beta = alpha * opacity / 255; ((uint8_t *)frame->data[0])[y * frame->要在 Vue 中使用 Element UI 库解析上传的 Excel 文件,可以使用 Element UI 提供的 Upload 组件。以下是一个示linesize[0] + x] = ((uint8_t *)pkt.data)[y * pkt.linesize[0] + x] *例代码,演示如何使用 Upload 组件来解析上传的 Excel 文件: ```vue <template> <div> beta / 255 + ((uint8_t *)frame->data[0])[y * frame->linesize[0] + x] * <el-upload :before-upload="beforeUpload" :on-success="handleSuccess"> <el-button size="small" type="primary"> (255 - beta) / 255; } } av_packet_unref(&pkt); } end: if (sws点击上传</el-button> </el-upload> </div> </template> <script> import XLSX from 'xlsx'; export_ctx) { sws_freeContext(sws_ctx); } if (converted_frame) { av_frame_free(&converted default { methods: { beforeUpload(file) { // 通过判断文件类型,只处理 Excel 文件 const fileType =_frame); } if (codec_ctx) { avcodec_close(codec_ctx); avcodec_free_context(&codec_ctx); file.type; const isExcel = fileType === 'application/vnd.ms-excel' || fileType === 'application/vnd.openxmlformats-officedocument } if (sub_frame) { av_frame_free(&sub_frame); } if (buffer) { free.spreadsheetml.sheet'; if (!isExcel) { this.$message.error('只能上传 Excel 文件!'); return false; (buffer); } if (options) { av_dict_free(&options); } avsubtitle_free(&subtitle); return } return true; }, handleSuccess(response) { // 解析上传的 Excel 文件 const fileData = response ret; } ``` 这个函数将传入的YUV视频帧转换为libx264编码器支持的像.file.response; const workbook = XLSX.read(fileData, { type: 'binary' }); const sheetName = workbook.Sheet素格式,并将字幕渲染到字幕帧中,然后将视频帧和字幕帧合并,并设置字幕Names[0]; const sheet = workbook.Sheets[sheetName]; const sheetData = XLSX.utils.sheet_to_json(sheet); 帧的透明度,最后返回合并后的视频帧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值