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
好的,感谢您的分享,这边会为您奖励金币。