以前我写过一个向excel插入图片的方法~~
using System;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
 
public static void InsertPicture(Image img, Excel.Worksheet sheet)
{
    int lastUsedRow = sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
    int lastPictureRow = sheet.Shapes.OfType<Excel.Shape>().Max(p => p.BottomRightCell.Row);
    int nextRow = Math.Max(lastUsedRow, lastPictureRow) + 1;
 
    (sheet.Cells[nextRow, 1] as Excel.Range).Select();
    Clipboard.SetImage(img);
    sheet.Paste();
}
仅供参考~~

解决方案 »

  1.   


    看下组件的版本
    在看下你试用EXL的版本
    我不懂 纯瞎扯http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.shapes.shape(v=vs.100).aspx
      

  2.   

    wg5945 
    按照你的方法是可以插入的  但是还是会把之前的所有图片插入进去
     
      prjitem = null; //这里调用前也做了清空 还是不行
      prjitem = (Bitmap)Image.FromFile(dt.Rows[i][11].ToString());
      InsertPicture(prjitem, sheet, "J1");
      public static void InsertPicture(Image img, Microsoft.Office.Interop.Excel.Worksheet sheet,string cell)
    {    Microsoft.Office.Interop.Excel.Range pic = sheet.get_Range(cell, Type.Missing);
     
        pic.Select();
        Clipboard.Clear();  //这里增加清空也没用
        Clipboard.SetImage(img);
        sheet.Paste();
    }
      

  3.   

    另外复制后 在放入到EXCEL 前怎么调整IMAGE的大小  发现属性是只读的
    image prjitem;
    prjitem = Image.FromFile(dt.Rows[i][11].ToString());
    //装入之后怎么调整大小