C# winform 向Excel中插入图片问题

xiaopei711 2009-11-10 09:05:05
做一个电子简历,其中有照片,我已经将照片以字节的形式存到Access数据库中。
现在我在查询的时候,将图片显示到picturebox中。然后我需要把这些信息导入到Excel中。

文字信息就很好办,例如app.cells[2,4]=textbox.text;
问题是,我无法将picturebox中的图片导入到Excel指定的表格中。

请教各位,有什么办法,谢谢。最好有代码!
...全文
631 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiyhb 2012-07-05
  • 打赏
  • 举报
回复
学习,参考了。
问问提 2009-12-29
  • 打赏
  • 举报
回复
学习
xiaopei711 2009-11-10
  • 打赏
  • 举报
回复
已解决
谢谢楼上各位!!!
lzsh0622 2009-11-10
  • 打赏
  • 举报
回复
文件格式,如:

pictureBox1.Image.Save("c:\\tmp.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
pictureBox1.Image.Save("c:\\tmp.Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
xiaopei711 2009-11-10
  • 打赏
  • 举报
回复
楼上的可否详细一点?
给出简单代码最好
谢谢
N_ccw 2009-11-10
  • 打赏
  • 举报
回复
把数据库读出的图片二进制数据读到流Stream里,再转制为Image对象,然后就可以插入Excel表格中了
xiaopei711 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lzsh0622 的回复:]
位置坐标,大小 ,参见MSDN帮助
[/Quote]
这位大哥,实在不好意思。

刚学不久,不是很懂!

可否在讲一下picturebox.Image.Save(@"C:\tmp.bmp" ,...) 中最后面的三个点是什么意思?我输入了提示出错,然后我把逗号以及后面三个点都删了,也能运行。怎么回事?
还有,代码全部打进去后,运行时,在“xSheet.Shapes.AddPicture”处提示“未处理ComException,指定值超出范围”。这是怎么回事?
谢谢
lzsh0622 2009-11-10
  • 打赏
  • 举报
回复
位置坐标,大小 ,参见MSDN帮助
xiaopei711 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lzsh0622 的回复:]
picturebox.Image.Save(@"C:\tmp.bmp" ,...)

存临时文件,然后删除
[/Quote]
谢谢,我刚想到!
还有能否解释下你的程序?
如“, 10, 10, 200, 200”是什么意思?
谢谢
lzsh0622 2009-11-10
  • 打赏
  • 举报
回复
picturebox.Image.Save(@"C:\tmp.bmp" ,...)

存临时文件,然后删除
xiaopei711 2009-11-10
  • 打赏
  • 举报
回复
首先谢谢楼上各位热心帮助!

看了你们提供的代码,发现一个问题,你们所提供的程序都涉及图片的路径问题,如“C:\tmp.bmp ” 、“PicturePath”。
问题是我的图片已经存到Access中,picturebox中现实的图片是里面读出来的,无法确定图片原先的地址啊,这该怎么办?
wuyq11 2009-11-10
  • 打赏
  • 举报
回复
public void InsertPicture( string RangeName, string PicturePath )
{
m_objRange = m_objSheet.get_Range(RangeName, m_objOpt);
m_objRange.Select();
Excel.Pictures pics = (Excel.Pictures)m_objSheet.Pictures(m_objOpt);
pics.Insert(PicturePath, m_objOpt);
}

或用Shapes.AddPicture
http://topic.csdn.net/u/20091022/11/e781fd31-ab3e-4406-82c3-fa53c1075366.html
lzsh0622 2009-11-10
  • 打赏
  • 举报
回复
picturebox.Image.Save(@"C:\tmp.bmp" ,...)

使用 xSheet.Shapes.AddPicture
xSheet.Shapes.AddPicture(@"C:\tmp.bmp", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, 10, 10, 200, 200);

红街咖啡 2009-11-10
  • 打赏
  • 举报
回复
红街咖啡 2009-11-10
  • 打赏
  • 举报
回复
Microsoft.Office.Interop.Excel; 调用这个代码参考

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧