excel 指定单元格插入图片
vb.net 操作 excel 指定单元格插入图片
[解决办法]
private void SetPictureToRange(Excel.Workbook p_Workbook, Excel.Worksheet p_Worksheet, string p_strRangeName string p_Path){ Excel.Pictures v_Pictures = (Excel.Pictures)p_Worksheet.Pictures(Type.Missing); Excel.Picture v_Picture = v_Pictures.Insert(p_Path, Type.Missing); // Excel的get_Range方法可以得到Excel的单元格,可以用来设置图片显示的位置 Excel.Range v_Range = p_Worksheet.get_Range(p_strRangeName, Type.Missing); double v_fFactor = 1; //设置图片大小 if (v_Picture.Width * (double)v_Range.Height > v_Picture.Height * (double)v_Range.Width) v_fFactor = (double)v_Range.Width / (double)v_Picture.Width; else v_fFactor = (double)v_Range.Height / (double)v_Picture.Height; v_Picture.Left = (double)v_Range.Left + ((double)v_Range.Width - (v_Picture.Width * v_fFactor)) / 2 + 1; v_Picture.Top = (double)v_Range.Top + ((double)v_Range.Height - (v_Picture.Height * v_fFactor)) / 2 + 1; v_Picture.Width = v_Picture.Width * v_fFactor - 0.5d; v_Picture.Height = v_Picture.Height * v_fFactor - 0.5d;}
[解决办法]
excel和数据库基本操作顺序参考:
http://blog.csdn.net/linjimu/archive/2009/06/17/4277297.aspx
http://blog.csdn.net/linjimu/archive/2009/07/02/4315044.aspx
--
下面代码是上面两个例子中的一段代码。
myRange = xlSheet.Range("B" & iRow)'确定图片填充哪一个单元格If ImgPathTypePick = AddImgPathType.SysPath Or ImgPathTypePick = AddImgPathType.CustomPath Then CurImgPath = "" CurImgPath = Path.Combine(PicDir, CurItemNo & ".jpg")'获取图片路径 If IO.File.Exists(CurImgPath) Then ImgPt.X = CInt(myRange.Left) ImgPt.Y = CInt(myRange.Top) ImgRct = GetSmlImgRct(CurImgPath, ImgPt, SmlImgSize)'获取图片缩放的尺寸大小 xlSheet.Shapes.AddPicture(CurImgPath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, ImgRct.X + 2, ImgRct.Y + 2, ImgRct.Width * Px2Pt, ImgRct.Height * Px2Pt)'插入图片 End IfEnd If