1

以下のようにExcelシートに画像を挿入しようとしています。

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

しかし、ExcelがA1セルで開くと、画像は表示されませんが、
次の結果のみが表示されます。System.Drawing.Bitmap
では、問題は何ですか。どうすれば解決できますか。そして2番目の質問は:
私の写真がデータベースにある場合にExcelに挿入する方法です。そして私はExcelに挿入するためにそれらをコンピュータに保存したくないですか?[WinForm]

4

2 に答える 2

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
于 2012-08-25T14:54:41.307 に答える
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();
            }
于 2012-08-25T16:37:37.157 に答える