找回密码
 立即注册

QQ登录

只需一步,快速开始

KYddd
注册会员   /  发表于:2022-11-28 09:27:43
11#
本帖最后由 KYddd 于 2022-11-28 09:33 编辑
Ellia.Duan 发表于 2022-11-25 17:51
请您上传下您的测试的.tiff文件
这儿好像上传不了啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-28 09:45:50
12#
KYddd 发表于 2022-11-28 09:27
这儿好像上传不了啊

您将其压缩一下,可以上传压缩包
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-11-28 09:57:08
13#
Ellia.Duan 发表于 2022-11-28 09:45
您将其压缩一下,可以上传压缩包

好的,已上传

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-28 14:08:33
14#
本帖最后由 Ellia.Duan 于 2022-11-29 10:20 编辑

您好,这边已复现您的问题,暂时没有相关API 或者接口可以捕获到这个tiff文件上传失败的异常。这边将记录下您的需求,看是否可以支持tiff文件,稍后将此贴移至产品需求板块,同时置为保留处理。[SJS-16036]
同时为您提供一个其他方案:
自定义插入图片,将designer中插入图片的菜单删除,同时在此位置新增一个自定义插入图片的菜单,重写插入图片相关逻辑,限制插入图片的格式,或者插入后,判断其文件类型。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-11-28 14:55:49
15#
本帖最后由 KYddd 于 2022-11-28 15:02 编辑
Ellia.Duan 发表于 2022-11-28 14:08
您好,这边已复现您的问题,暂时没有相关API 或者接口可以捕获到这个tiff文件上传失败的异常。这边将记录下 ...

好的。我试试重写
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-28 15:23:54
16#
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-11-28 15:45:52
17#
本帖最后由 KYddd 于 2022-11-28 15:50 编辑
  1. // 插入图片完整实现
  2. var config = GC.Spread.Sheets.Designer.DefaultConfig;
  3. config.commandMap = {
  4.                 // 重写插入图片
  5.                 insertPicture:{
  6.                     execute: function (context, options, isUndo) {
  7.                         console.log("自定义插入")
  8.                         var inputObj=document.createElement('input')
  9.                         inputObj.setAttribute('id','localInput');
  10.                         inputObj.setAttribute('type','file');
  11.                         inputObj.setAttribute("style",'visibility:hidden');
  12.                         inputObj.setAttribute("accept",'image/bmp,image/gif,image/jpeg,image/jpg,image/png');
  13.                         document.body.appendChild(inputObj);
  14.                         inputObj.click();
  15.                         inputObj.onchange=function(e){
  16.                             console.log('选择文件:',e.target.files[0])
  17.                             // 选择的file转为base64
  18.                             getReader(e.target.files[0])
  19.                         }
  20.                     }
  21.                 }
  22.             }
  23. // 选择的file转为base64
  24.         function getReader(file) {
  25.             var reader = new FileReader();
  26.             reader.readAsDataURL(file); //异步读取文件内容,结果用data:url的字符串形式表示

  27.             /*当读取操作成功完成时调用*/

  28.             reader.onload = function (e) {
  29.                 // 表格中插入图片
  30.                 var sheet = spread.getActiveSheet();
  31.                 startRow = sheet.getActiveRowIndex();
  32.                 startCol = sheet.getActiveColumnIndex();
  33.                 rowHeight = sheet.getRowHeight();
  34.                 colWidth = sheet.getColumnWidth();
  35.                 console.log('reader.result', this.result);
  36.                 // 校验图片格式
  37.                 let canDo=validateImg(this.result)
  38.                 if(canDo){
  39.                     timestamp = Date.parse(new Date());
  40.                     picture = sheet.pictures.add(timestamp.toString(), this.result, startCol * colWidth, startRow *
  41.                         rowHeight);
  42.                 }else{
  43.                     alert('不支持此格式')
  44.                 }


  45.             }
  46.         }
  47.         // 校验插入的图片格式
  48.         function validateImg(base64){
  49.             // 不支持的图片格式
  50.             let noType=['tif','tiff','emf','wmf','tmp']
  51.                 let imgSrc=base64
  52.                 if(imgSrc.indexOf('data:image/')!==-1){
  53.                     let imgType=imgSrc.split(';')[0].split('/')[1]
  54.                     console.log('imgType',imgType)
  55.                     return noType.indexOf(imgType)==-1?true:false  // 1 图片可渲染 2 不可渲染

  56.                 }

  57.         }
复制代码

评分

参与人数 1金币 +100 收起 理由
Ellia.Duan + 100

查看全部评分

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-28 17:40:14
18#

请问您贴出上述代码是遇到了什么问题呢?看着您的代码已经实现了上述功能。
回复 使用道具 举报
KYddd
注册会员   /  发表于:2022-11-28 17:59:11
19#
Ellia.Duan 发表于 2022-11-28 17:40
请问您贴出上述代码是遇到了什么问题呢?看着您的代码已经实现了上述功能。

哦哦,就是贴出来方便其他人用
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-28 18:05:38
20#
好的,感谢您的分享,这边会为您奖励金币。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部