日期:2014-05-17  浏览次数:20935 次

c# 截图插入execl
winform程序,可以将自身窗口截图保存,现在的需求是,截图需要保存到execl中~~

看了下这篇文章

http://blog.csdn.net/net_lover/article/details/1702797

现在有2个问题~~

1、截图是生成bitmap,但是上面例子中的接口需要物理地址,我只能先保存到本地,然后插入execl后,再把本地图片删除,感觉不怎么好,有没有直接将bitmap插入execl的方法?

2、原帖中图片插入位置是自定义的,能不能直接获取execl中上次插入的位置,也可以理解成有内容的位置,我直接在下一行插入就行了~~

对于Microsoft.Office.Interop.Excel还真没用过,虚心求教~~

c# execl 截图

------解决方案--------------------
可以使用NOPI来实现,具体实现参考下面文章:
http://www.cnblogs.com/atao/archive/2009/09/28/1576044.html
------解决方案--------------------
                     Image image = Picture.ReadPicture(ds.Tables[0].Rows[row][col].ToString());  
                        range = sheet.get_Range(string.Format("A{0}", row * num + 29), string.Format("A{0}", row * num + 48));  
                        sheet.Shapes.AddPicture(ds.Tables[0].Rows[row][col].ToString(), Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, Convert.ToSingle(range.Left) + 15 + image.Width, Convert.ToSingle(range.Top) + 5, image.Width, image.Height);   //插入图片 


http://blog.csdn.net/happy09li/article/details/7431967
------解决方案--------------------
引用:
这个貌似编不过~~

int lastPictureRow = sheet.Shapes.OfType<Excel.Shape>().Max(p => p.BottomRightCell.Row);

这个sheet.Shapes里面点不出OfType

报了个错
'Microsoft.Office.Interop.Excel.Shapes' から 'System.Linq.IQueryable' に変換できません	

意思就是
不能从Microsoft.Office.Interop.Excel.Shapes转换到System.Linq.IQueryable