找回密码
 立即注册

QQ登录

只需一步,快速开始

码出一个新世界

初级会员

54

主题

144

帖子

398

积分

初级会员

积分
398

微信认证勋章

码出一个新世界
初级会员   /  发表于:2016-9-22 09:19  /   查看:4680  /  回复:9
SpreadJS设计器里面设计了一个模板,然后在客户端绑定数据之后,导出Excel之后数据无法导出,上传的图片也没有导出
QQ截图20160922091855.png

9 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-9-22 09:43:44
沙发
如果需要导出绑定数据需要加上
spread.toJSON(true)或者 spread.toJSON({includeBindingSource: true})

上传的图片需要转换成base64图片才能导出,如果是链接,因为跨域的问题导出时可能获取不到图片
回复 使用道具 举报
E时间
注册会员   /  发表于:2016-9-22 11:09:30
板凳
1。上传的图片需要转换成base64图片才能导出 ,在那里如何用base64转?转后在图看邦定时需要做什么?
2。链接跨域怎么了? 还是链接我用的是Spreadjs 自定义“A” 标签。微软的EXCEL不认别链接?
3,复选框 我选择是“已选” ,导出成EXCEL后显示为“TRUE” 如何能显示成“已选”?
C20160922110029.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-9-22 12:00:14
地板
1. 可以在前端做也可以后台处理,这个看你业务。处理后将base64的url赋值给pricture 的src就好了。
前端示例代码
  1.             var imageurl = "/wd.jpg"
  2.             
  3.             var imgElement = $(document.createElement("img"));
  4.             imgElement.bind("load", function () {
  5.                 var canvas = document.createElement('CANVAS');
  6.                 var ctx = canvas.getContext('2d');
  7.                 var dataURL;
  8.                 canvas.height = this.height;
  9.                 canvas.width = this.width;
  10.                 ctx.drawImage(this, 0, 0);
  11.                 dataURL = canvas.toDataURL("image/png");
  12.                
  13.                 document.getElementById('tt').src(dataURL);
  14.             });
  15.             imgElement[0].src = imageurl;
复制代码


2. 超链接、button、还有checkbox都是无法导出的,因为excel没有对应的功能。
3,只能导出单元格的真实值,就是绑定的true  or false。
回复 使用道具 举报
E时间
注册会员   /  发表于:2016-9-22 14:19:53
5#
spread.toJSON({includeBindingSource: true})为EXCEL数据!
1。上传的图片需要转换成base64图片才能导出 ,在那里如何用base64转?转后在图看邦定时需要做什么?

这个代码 我没有看明白怎么用它?
var imageurl = "/wd.jpg"

02.            

03.            var imgElement = $(document.createElement("img"));

04.            imgElement.bind("load", function () {

05.                var canvas = document.createElement('CANVAS');

06.                var ctx = canvas.getContext('2d');

07.                var dataURL;

08.                canvas.height = this.height;

09.                canvas.width = this.width;

10.                ctx.drawImage(this, 0, 0);

11.                dataURL = canvas.toDataURL("image/png");

12.               

13.                document.getElementById('tt').src(dataURL);

14.            });

15.            imgElement[0].src = imageurl;
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-9-22 15:35:00
6#
比如您希望加一个 图片
activeSheet.addPicture("f2","tsoutline.png",2,2,6,6);
这样加的图片 是使用的相对路径,
您可以使用上面的代码
将  document.getElementById('tt').src(dataURL);
这句替换为 activeSheet.addPicture("f2",dataURL,2,2,6,6);

这样就是添加一个base64的图片了。
回复 使用道具 举报
E时间
注册会员   /  发表于:2016-9-23 13:55:00
7#
这样保存在SSJSON文件导入导邮是可以显示出图片来的。那在 导出EXCEL文件时,没图片,这如何导出?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-9-23 14:21:13
8#
如果ssjson中的图片是已base64保存的,那么是可以导出excel的。要不您发个简单demo吧。我帮您看下。
回复 使用道具 举报
E时间
注册会员   /  发表于:2016-9-23 15:09:52
9#
如何在EXCEL文件中导出图片?
1,SpreadjsTEXT.rar是DOME ;  2, GrapecityExcelService.rar是服务,放在IIS上。2,操作如12.png图
12.png

SpreadJSTEXT.rar

13.86 MB, 下载次数: 144

GrapeCityExcelService.rar

5.66 MB, 下载次数: 142

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-9-23 15:48:39
10#
我看了您的代码,需要改动下面的代码,在您上传完成图片后,用我上面的提供的代码将图片转换为base64图片后然后再addPicture就行了


  1.      function AjxUploadImg(Sheet, row, col, data) {

  2.              var imageurl = "/Template/" + data.filename

  3.              var imgElement = $(document.createElement("img"));
  4.              imgElement.bind("load", function() {
  5.                      var canvas = document.createElement('CANVAS');
  6.                      var ctx = canvas.getContext('2d');
  7.                      var dataURL;
  8.                      canvas.height = this.height;
  9.                      canvas.width = this.width;
  10.                      ctx.drawImage(this, 0, 0);
  11.                      dataURL = canvas.toDataURL("image/png");

  12.                      var picture = Sheet.addPicture("f2", dataURL, row, col - 1, 5, 5);

  13.              });
  14.              imgElement[0].src = imageurl;
  15.      }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部