KYddd 发表于 2022-11-28 09:27:43

本帖最后由 KYddd 于 2022-11-28 09:33 编辑

Ellia.Duan 发表于 2022-11-25 17:51
请您上传下您的测试的.tiff文件这儿好像上传不了啊

Ellia.Duan 发表于 2022-11-28 09:45:50

KYddd 发表于 2022-11-28 09:27
这儿好像上传不了啊

您将其压缩一下,可以上传压缩包

KYddd 发表于 2022-11-28 09:57:08

Ellia.Duan 发表于 2022-11-28 09:45
您将其压缩一下,可以上传压缩包

好的,已上传

Ellia.Duan 发表于 2022-11-28 14:08:33

本帖最后由 Ellia.Duan 于 2022-11-29 10:20 编辑

您好,这边已复现您的问题,暂时没有相关API 或者接口可以捕获到这个tiff文件上传失败的异常。这边将记录下您的需求,看是否可以支持tiff文件,稍后将此贴移至产品需求板块,同时置为保留处理。
同时为您提供一个其他方案:
自定义插入图片,将designer中插入图片的菜单删除,同时在此位置新增一个自定义插入图片的菜单,重写插入图片相关逻辑,限制插入图片的格式,或者插入后,判断其文件类型。

KYddd 发表于 2022-11-28 14:55:49

本帖最后由 KYddd 于 2022-11-28 15:02 编辑

Ellia.Duan 发表于 2022-11-28 14:08
您好,这边已复现您的问题,暂时没有相关API 或者接口可以捕获到这个tiff文件上传失败的异常。这边将记录下 ...
好的。我试试重写

Ellia.Duan 发表于 2022-11-28 15:23:54

:handshake:handshake

KYddd 发表于 2022-11-28 15:45:52

本帖最后由 KYddd 于 2022-11-28 15:50 编辑

// 插入图片完整实现
var config = GC.Spread.Sheets.Designer.DefaultConfig;
config.commandMap = {
                // 重写插入图片
                insertPicture:{
                  execute: function (context, options, isUndo) {
                        console.log("自定义插入")
                        var inputObj=document.createElement('input')
                        inputObj.setAttribute('id','localInput');
                        inputObj.setAttribute('type','file');
                        inputObj.setAttribute("style",'visibility:hidden');
                        inputObj.setAttribute("accept",'image/bmp,image/gif,image/jpeg,image/jpg,image/png');
                        document.body.appendChild(inputObj);
                        inputObj.click();
                        inputObj.onchange=function(e){
                            console.log('选择文件:',e.target.files)
                            // 选择的file转为base64
                            getReader(e.target.files)
                        }
                  }
                }
            }
// 选择的file转为base64
      function getReader(file) {
            var reader = new FileReader();
            reader.readAsDataURL(file); //异步读取文件内容,结果用data:url的字符串形式表示

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

            reader.onload = function (e) {
                // 表格中插入图片
                var sheet = spread.getActiveSheet();
                startRow = sheet.getActiveRowIndex();
                startCol = sheet.getActiveColumnIndex();
                rowHeight = sheet.getRowHeight();
                colWidth = sheet.getColumnWidth();
                console.log('reader.result', this.result);
                // 校验图片格式
                let canDo=validateImg(this.result)
                if(canDo){
                  timestamp = Date.parse(new Date());
                  picture = sheet.pictures.add(timestamp.toString(), this.result, startCol * colWidth, startRow *
                        rowHeight);
                }else{
                  alert('不支持此格式')
                }


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

                }

      }

Ellia.Duan 发表于 2022-11-28 17:40:14

KYddd 发表于 2022-11-28 15:45


请问您贴出上述代码是遇到了什么问题呢?看着您的代码已经实现了上述功能。

KYddd 发表于 2022-11-28 17:59:11

Ellia.Duan 发表于 2022-11-28 17:40
请问您贴出上述代码是遇到了什么问题呢?看着您的代码已经实现了上述功能。

哦哦,就是贴出来方便其他人用

Ellia.Duan 发表于 2022-11-28 18:05:38

好的,感谢您的分享,这边会为您奖励金币。
页: 1 [2] 3
查看完整版本: 增加监听插入TIFF格式图片的事件