找回密码
 立即注册

QQ登录

只需一步,快速开始

yuyuyu

注册会员

7

主题

18

帖子

161

积分

注册会员

积分
161
yuyuyu
注册会员   /  发表于:2016-9-19 11:15  /   查看:17321  /  回复:11
往sheet中加入一张图片时 有图片的样式显示(可以拉伸 移动)但是图片不显示 如果加了picture.backColor("black"),整个图片区域会变黑(如图)。而把表单导出excel后可以正常显示图片。
js代码如下
var imageUrl = 'data:image/png;base64,'+base64;
var cIndex = sheet.getActiveColumnIndex();
var rIndex = sheet.getActiveRowIndex();
var picture=sheet.addPicture(data.attachmentName,imageUrl,rIndex,cIndex);

$OZ`W[N0L78OJ}I88]9CQ7B.png

11 个回复

正序浏览
Alice
社区贡献组   /  发表于:2016-9-20 11:30:10
12#
yuyuyu 发表于 2016-9-19 19:01
对的就是这个问题 已解决 谢谢

谢谢您的反馈。
此问题关闭,如果有新问题请开新帖。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
yuyuyu
注册会员   /  发表于:2016-9-19 19:01:59
11#
CCKan 发表于 2016-9-19 16:05
个人对 Java 不是很熟,百度了一下,好像是因为 BASE64Encoder 编码的时候每76个字符会插一个 "\r\n",简单 ...

对的就是这个问题 已解决 谢谢
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-9-19 16:05:26
10#
个人对 Java 不是很熟,百度了一下,好像是因为 BASE64Encoder 编码的时候每76个字符会插一个 "\r\n",简单的解决方法是将 "\r\n" 去掉,你看下是否可行:
return encoder.encode(data).replaceAll("[\\s*\t\n\r]", "");

评分

参与人数 1金币 +999 收起 理由
Alice + 999 很给力!

查看全部评分

回复 使用道具 举报
liyx
金牌服务用户   /  发表于:2016-9-19 16:00:46
9#
CCKan 发表于 2016-9-19 15:22
那你直接执行这几行代码图片能显示吗?
你说的导出图片再用 spreadjs 添加这张图片的具体步骤是什么?

请帮忙尽快解决此问题,多谢。
回复 使用道具 举报
yuyuyu
注册会员   /  发表于:2016-9-19 15:55:36
8#
CCKan 发表于 2016-9-19 15:22
那你直接执行这几行代码图片能显示吗?
你说的导出图片再用 spreadjs 添加这张图片的具体步骤是什么?

用Chorme调试的时候看到Resources已经有图片了 但是不能显示在页面上
回复 使用道具 举报
yuyuyu
注册会员   /  发表于:2016-9-19 15:30:19
7#
CCKan 发表于 2016-9-19 15:22
那你直接执行这几行代码图片能显示吗?
你说的导出图片再用 spreadjs 添加这张图片的具体步骤是什么?

直接执行你给的字符串可以显示~而且可以正常导出excel,我把图片导出excel后,用另存为方式保存了这张图片,然后再把这张图片编码成了base64,编码出来的字符串给开始给你我的那条不一样 以下是编码的代码:
  InputStream fs=new FileInputStream(file);
        byte[] data = null;
        // 读取图片字节数组
        try {

         data = new byte[fs.available()];
         fs.read(data); fs.close(); }
         catch (IOException e)
         { e.printStackTrace(); }
        // 对字节数组Base64编码
         BASE64Encoder encoder = new BASE64Encoder();
        // 返回Base64编码过的字节数组字符串
        return encoder.encode(data);
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-9-19 15:22:14
6#
那你直接执行这几行代码图片能显示吗?
你说的导出图片再用 spreadjs 添加这张图片的具体步骤是什么?
回复 使用道具 举报
yuyuyu
注册会员   /  发表于:2016-9-19 15:18:00
5#
CCKan 发表于 2016-9-19 14:07
感觉你的 base64 图片有问题,在我这里也不显示。但是以下代码工作正常:
var image = 'data:image/png;ba ...

试过很多图片都不行,不知道是不是我用的编码方法有问题? 我用你的这个字符串导出图片后 再用spreadjs添加这张图片 还是显示不了
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-9-19 14:07:29
地板
感觉你的 base64 图片有问题,在我这里也不显示。但是以下代码工作正常:
var image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAIAAABrvZPKAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO' +
            'wwAADsMBx2+oZAAAAIdJREFUOE/tzEEKgCAQheEOWLdx351adYc8Qgs3rbuAUC9nkkF0BKNN9CMy0Xx2' +
            '5llf8Edr7d57j/tlP4wTHf4W/b7gsT0vLs7Sz9bFWfM9nrDXE9ITphlVPO512wkkM++FNF86vBfKeKR4' +
            '3rjLe5QwOvxPVPSoipHmkY5RxSMFo7rXY9+eMSdet07b6c/bnwAAAABJRU5ErkJggg==';
var picture = sheet.addPicture("img1", image, 2, 2);
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部