2012-08-25 64 views
1

我想插入一個圖像,像下面的Excel表格。插入圖像到excel表格不工作

Image img = Image.FromFile("test.jpg"); 
sheet.get_Range("A1").set_Item(1,1,img); 

但是當Excel在A1單元格中打開沒有任何圖片,
但只有這樣的結果:System.Drawing.Bitmap那麼,什麼是問題
,我怎麼能解決這個問題。 而第二個問題是:
如何插入excel如果我的圖片位於數據庫中。我不想將它們保存到計算機插入到Excel中? [WinForm的]

回答

2
Try this: 

object missing = System.Reflection.Missing.Value; 
Excel.Range picPosition = sheet.get_Range("A1"); // retrieve the range for picture insert 
Excel.Pictures p = yourWorksheet.Pictures(missing) as Excel.Pictures; 
Excel.Picture pic = null; 
pic = p.Insert(yourImageFilePath, missing); 
pic.Left = Convert.ToDouble(picRange.Left); 
pic.Top = picRange.Top; 
pic.Placement = // Can be any of Excel.XlPlacement.XYZ value 
+0

什麼,如果我的形象位於數據庫和我不想要這個圖像保存到硬盤。我怎麼能插入圖像直接擅長而不保存它? – namco

+1

嗨,你有硬盤上的圖像嘗試它嗎? –

+0

請參閱本文中的ProcessRequest http://www.codeproject.com/Articles/33310/C-Save-and-Load-Image-from-Database –

1
System.Data.SqlClient.SqlDataReader rdr = null; 
      System.Data.SqlClient.SqlConnection conn = null; 
      System.Data.SqlClient.SqlCommand selcmd = null; 
      try 
      { 
       conn = new System.Data.SqlClient.SqlConnection 
      (System.Configuration.ConfigurationManager.ConnectionStrings 
      ["ConnectionString"].ConnectionString); 
//here set your query to get image from databse 
       selcmd = new System.Data.SqlClient.SqlCommand 
      ("select pic1 from msg where msgid=" + 
      context.Request.QueryString["imgid"], conn); 
       conn.Open(); 
       rdr = selcmd.ExecuteReader(); 
       while (rdr.Read()) 
       { 
       byte[] YourImagebytearray = ((byte[])rdr["pic1"]); 
       MemoryStream stream = new MemoryStream(bytes); 
       var newImage = System.Drawing.Image.FromStream(stream); 
       stream.Dispose(); 
       } 
       if (rdr != null) 
       rdr.Close(); 
      } 
      finally 
      { 
       if (conn != null) 
        conn.Close(); 
      } 
+0

謝謝,我知道如何將字節流轉換爲圖像,但我想知道如何插入此圖像excel而不保存到計算機。你能告訴我那個代碼嗎? – namco

+0

int indexPicture = worksheet.Pictures.Add(5,5,stream); –

+0

我寫過你的代碼,但它給出了一個錯誤 - 'Microsoft.Office.Interop.Excel._Worksheet.Pictures(object)'是一個'方法',它在給定的上下文中無效。 – namco