从字节数组创建VSTO形状

时间:2015-01-07 14:44:36

标签: c# excel vsto

我有一个以字节数组编码的图像,我想将它添加为excel文档中的一个形状但不幸的是我看到的唯一可用功能要求我将图像保存到驱动器然后阅读。如您所见,这是一个非常慢的操作,我想简单地从字节流中读取图像并将其解码为位图。

我已将其编码为:

                    JpegBitmapEncoder encoder = new JpegBitmapEncoder();
                    encoder.Frames.Add(BitmapFrame.Create(rtb));
                    encoder.QualityLevel = 100;
                    byte[] bit = null;
                    using (var ms = new MemoryStream())
                    {
                        encoder.Frames.Add(BitmapFrame.Create(rtb));
                        encoder.Save(ms);
                        bit = ms.ToArray();
                    }

现在,如何将其添加到工作表中? 方法Shapes.AddPicture仅接受文件名,无法从流中读取。

1 个答案:

答案 0 :(得分:1)

Excel对象模型不提供任何读取字节数组的方法,然后将其添加为形状。因此,唯一可行的解​​决方案是将字节数组保存为磁盘上的文件,然后将其添加为前面所述的形状:

  

将图像保存到驱动器然后读取。