c# – 将内存流中的图像添加到Excel文档中
发布时间:2020-12-15 17:13:40 所属栏目:百科 来源:网络整理
导读:我在内存流中有一个图像,我想将其写入MS Excel文档,PIA只公开采用文件路径的AddPicture方法. 是否可以添加图片而无需将图像写入光盘? MSDN http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.shapes.addpicture(v=office.14).aspx
我在内存流中有一个图像,我想将其写入MS Excel文档,PIA只公开采用文件路径的AddPicture方法.
是否可以添加图片而无需将图像写入光盘? MSDN http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.shapes.addpicture(v=office.14).aspx 解决方法
好吧,有点盲目飞行,但假设你的代码有一两件事(例如你的源代码,数据类型等),这可能是一个解决方案:
首先,您需要从流中创建位图图像数据(我假设它是一个字节流,也假设流描述了位图图像). Stack Overflow上已有解决方案: Byte Array to Bitmap Image我从解决方案中复制粘贴代码: int w= 100; int h = 200; int ch = 3; //number of channels (ie. assuming 24 bit RGB in this case) 假设您有一个工作簿的对象和您即将使用的工作表,如下所示: xlBook = (Excel.Workbook)objExcel.Workbooks.Add(""); xlSheet = (Excel.Worksheet)xlBook.Worksheets07001; xlSheet.Activate(); 既然你有一个Bitmap类型的变量和一个工作表,你只需要将图像粘贴到工作表上: System.Windows.Forms.Clipboard.SetDataObject(bitmap,false); xlsRange = xlSheet.get_Range((Excel.Range)xlSheet.Cells[5,15],(Excel.Range)xlSheet.Cells[5,15]); xlSheet.Paste(xlsRange,bitmap); 所以关键是这里的人(而不是使用“AddPicture”):Worksheet.Paste Method希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |