解决方法
好吧,有点盲目飞行,但假设你的代码有一两件事(例如你的源代码,数据类型等),这可能是一个解决方案:
首先,您需要从流中创建位图图像数据(我假设它是一个字节流,也假设流描述了位图图像). Stack Overflow上已有解决方案: Byte Array to Bitmap Image我从解决方案中复制粘贴代码:
首先,您需要从流中创建位图图像数据(我假设它是一个字节流,也假设流描述了位图图像). 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)
byte[] imageData = new byte[whch]; //you image data here Bitmap bitmap = new Bitmap(w,h,PixelFormat.Format24bppRgb); BitmapData bmData = bitmap.LockBits(new System.Drawing.Rectangle(0,bitmap.Width,bitmap.Height),ImageLockMode.ReadWrite,bitmap.PixelFormat); IntPtr pNative = bmData.Scan0; Marshal.Copy(imageData,pNative,whch); bitmap.UnlockBits(bmData);
假设您有一个工作簿的对象和您即将使用的工作表,如下所示:
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希望这可以帮助!