C# 向Excel插入图片

来源:互联网 发布:婚礼宣传片制作软件 编辑:程序博客网 时间:2024/05/02 02:21

<!--StartFragment-->/// <summary>
    /// 将图片插入到指定的单元格位置。
    /// 注意:图片必须是绝对物理路径
    /// </summary>
    /// <param name="RangeName">单元格名称,例如:B4</param>
    /// <param name="PicturePath">要插入图片的绝对路径。</param>
    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);
    }

    /// <summary>
    /// 将图片插入到指定的单元格位置,并设置图片的宽度和高度。
    /// 注意:图片必须是绝对物理路径
    /// </summary>
    /// <param name="RangeName">单元格名称,例如:B4</param>
    /// <param name="PicturePath">要插入图片的绝对路径。</param>
    /// <param name="PictuteWidth">插入后,图片在Excel中显示的宽度。</param>
    /// <param name="PictureHeight">插入后,图片在Excel中显示的高度。</param>
    public void InsertPicture( string RangeName, string PicturePath, float PictuteWidth, float PictureHeight )
    {
      m_objRange = m_objSheet.get_Range(RangeName, m_objOpt);
      m_objRange.Select();
      float PicLeft, PicTop;
      PicLeft = Convert.ToSingle(m_objRange.Left);
      PicTop = Convert.ToSingle(m_objRange.Top);
      //参数含义:
      //图片路径
      //是否链接到文件
      //图片插入时是否随文档一起保存
      //图片在文档中的坐标位置(单位:points)
      //图片显示的宽度和高度(单位:points)
      //参数详细信息参见:http://msdn2.microsoft.com/zh-cn/library/aa221765(office.11).aspx
      m_objSheet.Shapes.AddPicture(PicturePath, Microsoft.Office.Core.MsoTriState.msoFalse,
        Microsoft.Office.Core.MsoTriState.msoTrue, PicLeft, PicTop, PictuteWidth, PictureHeight);
    }