加载中…
正文 字体大小:

C# 导出excel 2007 图片不在指定单元格内

(2013-03-15 14:16:55)
标签:

it

分类: C#

小妹我用C#导出excel 带图片,用office2003 正常,但换成office 2007 时,我指定多个单元格分别插入图片,这个图片不在此单元格内,这些图片全都集中在一起,在一个位置上。很奇怪,看起来也不是某个单元格
我导出图片的方法如下:
  ///
        /// 将图片插入到指定的单元格位置。
        /// 注意:图片必须是绝对物理路径
        ///
        /// 单元格名称,例如:B4
        /// 要插入图片的绝对路径。
        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);
        }

解决方法是

Excel.Pictures pics=(Excel.Pictures)worksheet.Pictures(Type.Missing);//建立图片集合对象

 int TD=1;
 int p=1;
Range range_1 =range=worksheet.get_Range('A'+TD.ToString(),'A'+TD.ToString());
     //获取填充单元格范围
      for 循环   

   
      pics.Insert(picPath,Type.Missing);//获取图片

      Excel.Picture pic = (Excel.Picture )pics.Item(p);//建立图片集合某一图片对象

       pic.Left = (double)range_1.Left;
       pic.Top = (double)range_1.Top;
       pic.Height =(double)range_1.Height;
       pic.Width =(double)range_1.Width;
       TD=TD+1;
       p=p+1; 

}

关键在于pics一定要在多个图片循环插入的外面,同时要给每一张图片的left ,top 附成插入单元格的left top

这样在2007中,才能把图片插入到指定位置

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有