找回密码
 立即注册

QQ登录

只需一步,快速开始

jiankeyan

中级会员

98

主题

268

帖子

794

积分

中级会员

积分
794
jiankeyan
中级会员   /  发表于:2021-4-5 12:07  /   查看:3330  /  回复:12
本帖最后由 jiankeyan 于 2021-4-5 12:08 编辑

46b9b032a0fad8620ad0f46963cb457.png
使用spreadjs上传图片保存了图片路径  后台gc.net该如何获取这个url?
js获取方式
image.png955557556.png

12 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-6 10:32:25
沙发
本帖最后由 Richard.Ma 于 2021-4-6 16:40 编辑

我看了一下你的spreadjs代码,其中的src() ,实际上保存的是此图片的base64编码而非路径
因此,在GC中添加同样的图片,只需要获取此base64字符串,转换为MemoryStream后插入表格即可

  1. //转换
  2.         public MemoryStream ConvertBase64ToStream(string base64String)
  3.         {
  4.             byte[] imageBytes = Convert.FromBase64String(base64String);
  5.             MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
  6.             ms.Write(imageBytes, 0, imageBytes.Length);
  7.             return ms;
  8.         }

  9.         void addImage(string base64str) {
  10.             Workbook workbook = new Workbook();

  11.             var worksheet = workbook.Worksheets[0];
  12.            Image img = ConvertBase64ToImage(base64str);
  13.             int df = img.Width;
  14.             MemoryStream ms = ConvertBase64ToStream(base64str);
  15.             worksheet.Shapes.AddPicture(ms, ImageType.PNG, 100, 100, 200, 200);
  16.             workbook.Save(@"D:\Projects\0331.xlsx");
  17.         }
复制代码


回复 使用道具 举报
jiankeyan
中级会员   /  发表于:2021-4-6 15:48:01
板凳
您好,现在有结果了吗,这个问题比较着急
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-6 17:00:05
地板
已经在楼上给你更新了验证的结果,item.src() ,实际上获取的还是此图片的base64编码而非路径,因此只需要在C#中再将此编码作为图片插入到GC中即可,详细代码见2楼
回复 使用道具 举报
jiankeyan
中级会员   /  发表于:2021-4-6 17:49:39
5#
gcexcel对应的获取excel的方法是哪个  或者说 gcexcel如何获取全部图片  
回复 使用道具 举报
jiankeyan
中级会员   /  发表于:2021-4-6 17:49:47
6#
image.png786911926.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-6 18:04:06
7#
jiankeyan 发表于 2021-4-6 17:49
gcexcel对应的获取excel的方法是哪个  或者说 gcexcel如何获取全部图片

如下代码可以获取到表格中的图片

  1.             foreach(var sharp in worksheet.Shapes)
  2.             {
  3.                 if(sharp.Type== ShapeType.Picture)
  4.                 {
  5.                     //可以将图片类型的sharp转换为图片
  6.                     sharp.ToImage()
  7.                 }
  8.             }
复制代码
回复 使用道具 举报
jiankeyan
中级会员   /  发表于:2021-4-7 17:59:04
8#
image.png779358825.png   我大概意思就是说想获取这个src该怎么获取   我们在前端将图片保存的是路径  不是base64或者文件流。 比如说导出pdf的时候我需要获取所有的src然后进行图片转文件流
回复 使用道具 举报
jiankeyan
中级会员   /  发表于:2021-4-7 18:01:19
9#
您可以看看前端生成的json

jsondataTest.txt

338.63 KB, 下载次数: 46

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-7 18:12:43
10#
如果保存的是在线的图片地址的话,那么你得把在线的图片下载到本地才行,我帮你找到了一个类似的参考博客
https://blog.csdn.net/xinlingjun2007/article/details/80500471

如果这个图片实际就是你的运行程序的这台电脑保存的(作为web服务器),那你页可以根据这个地址,转换为绝对路径,直接读取即可
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部