none
请教数据库中的图片怎么插入Excel某个单元格呢

    问题

  •  我用SQL将一个图片从Oracle数据库中找出来了,请问要如何把这个图片插入到Excel的某个单元格呢?

    SQL: SELECT image FROM image_table WHERE id='001'

    2016年12月14日 1:49

答案

  • 数据库中的图片,读到程序代码中表现为byte字节数组(也可以转换为Stream),然后是考虑C# Excel操作如何插入图片。

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 leon1526 2016年12月15日 11:18
    2016年12月14日 5:46

全部回复

  • 参考:http://blog.csdn.net/yubofighting/article/details/6453143
    2016年12月14日 5:34
  • 数据库中的图片,读到程序代码中表现为byte字节数组(也可以转换为Stream),然后是考虑C# Excel操作如何插入图片。

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 leon1526 2016年12月15日 11:18
    2016年12月14日 5:46
  • Hi momoxiao,有VB.net的代码?我对C#不熟悉
    2016年12月14日 5:47
  • 我在网上找了下,很多提到要用什么二进制文件流,有没有比较详细的介绍啊?
    2016年12月14日 7:02
  • 抱歉,没有vb.net的。
    2016年12月14日 7:56
  • 查阅了些资料,现在图片已可正常显示在picturebox控件,现在问题应该很简单了:怎么样把图片插入到Excel中


                strSQL = "SELECT image FROM image_table WHERE id=001"
                Dim dst As New DataSet
                cmd.CommandText = strSQL
                cmd.Connection = conn
                cmd.CommandType = CommandType.Text
                Adapter.SelectCommand = cmd
                Adapter.SelectCommand.Connection = conn
                Adapter.Fill(dst)
                Dim MyBytes() As Byte = dst.Tables(0).Rows(0)("image")
                Dim MyStream = New MemoryStream(MyBytes)
                Me.PictureBox1.Image = Image.FromStream(MyStream) '图片在此处显示Ok
                conn.Close()

    我这样写提示找不到图片"XlsApp.Workbooks(1).Worksheets(1).shapes.AddPicture(Image.FromStream(MyStream), MsoTriState.msoFalse, MsoTriState.msoTrue, 50, 50, 200, 200)"









    • 已编辑 leon1526 2017年1月29日 3:26 更改描述
    2016年12月14日 12:28
  • 解决了,我先把图片保存在本地硬盘,插入Excel后再删除就可以了
    2016年12月15日 10:44