请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

zj602788658
金牌服务用户   /  发表于:2016-4-26 13:26  /   查看:3380  /  回复:8
数据库中存储的是二进制数据,求教怎么把二进制数据在Spread中显示成图片。
我用下面的方法写,提示对象必须实现 IConvertible。


Image a1 = GetImageByBytes((byte[])ds.Tables[0].Rows[i][5]);
                        fpSpread1.Sheets[0].Rows[i].Height = 50;
                        //fpSpread1.Sheets[0].Cells[i, 5].CellType = ict;
                        fpSpread1.Sheets[0].Cells[i, 5].Value = a1;

8 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-26 13:48:59
沙发
要将单元格数据类型设置为ImageCellType


  1.             FarPoint.Win.Spread.CellType.ImageCellType icelltype = new FarPoint.Win.Spread.CellType.ImageCellType();
  2.             icelltype.Style = FarPoint.Win.RenderStyle.Stretch;
  3.             icelltype.TransparencyColor = Color.Black;
  4.             icelltype.TransparencyTolerance = 100;
  5.             fpSpread1.Sheets[0].Rows[0].CellType = icelltype;
  6.             System.Drawing.Image image = System.Drawing.Image.FromFile("D:\\alphaomega3.jpg");
  7.             System.IO.MemoryStream stream = new System.IO.MemoryStream();
  8.             byte[] bytes;
  9.             string str;
  10.             image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
  11.             stream.Seek(0, System.IO.SeekOrigin.Begin);
  12.             bytes = stream.GetBuffer();
  13.             str = System.Convert.ToBase64String(bytes);
  14.             fpSpread1.Sheets[0].Cells[0, 0].Value = image;
  15.             fpSpread1.Sheets[0].Cells[0, 1].Value = bytes;
  16.             fpSpread1.Sheets[0].Cells[0, 2].Value = str;
复制代码
回复 使用道具 举报
zj602788658
金牌服务用户   /  发表于:2016-4-26 13:58:26
板凳
能不能把查询出来的数据直接显示在Spread里面。Spread4里面都能直接显示,但是9不行。应该如何设置?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-26 15:12:32
地板
您是说图片的byte 串吗?是需要设置celltype的
回复 使用道具 举报
zj602788658
金牌服务用户   /  发表于:2016-4-26 15:23:02
5#
我设置了Celltype了。我的数据就是Byte串
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-26 15:29:35
6#
fpSpread1.Sheets[0].Cells[0, 2].Value = str; 可以直接设置byte string。如果还不行,您发个demo我帮您看下
回复 使用道具 举报
zj602788658
金牌服务用户   /  发表于:2016-4-26 15:30:29
7#
导出Excel的时候,Header也导不出来?是需要设置什么属性吗?
回复 使用道具 举报
zj602788658
金牌服务用户   /  发表于:2016-4-26 15:30:33
8#
导出Excel的时候,Header也导不出来?是需要设置什么属性吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-26 15:37:21
9#
excel 没有header的概念,所以没法导出。如果需要,在第一行增加Header。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部