导出Execl插入的图片位置错误。如何解决。

水色无心 2018-12-30 08:53:50
/// <summary>
/// 将图片插入到指定的单元格位置,并设置图片的宽度和高度。
/// 注意:图片必须是绝对物理路径
/// </summary>
/// <param name="PicturePath">要插入图片的绝对路径。</param>
/// <param name="PictuteWidth">插入后,图片在Excel中显示的宽度。</param>
/// <param name="PictureHeight">插入后,图片在Excel中显示的高度。</param>
public void InsertPicture(_Worksheet oSheet, Range startcell, Range endcell, string PicturePath, bool center,bool isYuan,bool isdian,float x=0,float y=0)
{
oSheet.Application.ActiveWindow.Zoom = 100;
Range range = oSheet.get_Range(startcell, endcell);
range.Merge(0);
float PicLeft, PicTop;
float cellHight, cellWith;
PicLeft = Convert.ToSingle(range.Left);
PicTop = Convert.ToSingle(range.Top);
cellHight = Convert.ToSingle(range.Height);
cellWith = Convert.ToSingle(range.Width);
oSheet.Shapes.AddPicture(PicturePath, Microsoft.Office.Core.MsoTriState.msoCTrue, Microsoft.Office.Core.MsoTriState.msoTrue, PicLeft, PicTop, cellWith, cellHight);
}

使用上述方法将图片插入EXECL中。 结果我公司电脑图片没有问题。但是到了家里所有的图片慢慢偏移了。


我怀疑是获取到的 range.top属性有问题。但是不知道如何解决。请教大神
...全文
188 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nina_tang 2019-01-09
  • 打赏
  • 举报
回复
使用组件Spire.XLS(https://www.cnblogs.com/landeanfen/p/5888973.html)可以方便快捷的插入图片到Excel指定的单元格,并且也能自定义设置图片的尺寸,你可以尝试一下。

Workbook wb = new Workbook();
Worksheet sheet = wb.Worksheets[0];

string picPath = "C:\\pic.png";

//插入图片到第一个单元格
ExcelPicture picture = sheet.Pictures.Add(1, 1, picPath);
//设置图片尺寸
picture.Width = 500;
picture.Height = 500;

sheet.Columns[0].ColumnWidth = 50;
sheet.Rows[0].RowHeight = 150;

wb.SaveToFile("插入图片.xlsx", ExcelVersion.Version2013);
水色无心 2018-12-30
  • 打赏
  • 举报
回复
如果是固定上偏移我还认可。每一个上偏移量都不同。
我是手工设置了行高=17

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧