自学内容网 自学内容网

js读取excel中的图片

js读取excel中的图片


网络查询无果后,疯狂乱抓,使用这个笨方法

方法中读取文件流后再返回对象

export function import_excel_file(file) {
  const workbook = new ExcelJS.Workbook()
  return new Promise((resolve, reject) => {
    readFile(file).then(buffer => {
      workbook.xlsx.load(buffer).then(() => {
        resolve(workbook)
      }).catch(() => {
        reject()
      })
    })
  })
}

使用返回的对象获工作簿对象下的所有图片(示例只使用工作薄1),遍历记录所有的图片二进制对象及坐标(此坐标从0开始),存入map集合中以坐标、图像对象为key,value值。

import_excel_file(file.raw).then(workbook => {
          let mapImg = new Map()
          const worksheet = workbook.getWorksheet(1)
          for (const image of workbook.getWorksheet(1).getImages()) {
            const siteImg = image.range.br
            const imageObj = workbook.getWorksheet(1).workbook.getImage(image.imageId)
            if (imageObj) {
              if (imgType.includes(imageObj.extension)) {
                const col = String(siteImg.nativeCol)
                const row = String(siteImg.nativeRow);
                const imgSite = col + '-' + row
                // 存入map集合中
                mapImg.set(imgSite, imageObj)
              }
            }
          }
        }).catch(() => {
          this.$message.error('无法解析文件')
        })

结尾:如有错误或更简单的方法,敬请指正。


原文地址:https://blog.csdn.net/weixin_43569417/article/details/136803887

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!