今天写一个小程序用到了操作Excel图片的功能,我用的是Epplus,首先查了一下插入图片的接口,还是非常简单的
var picture = sheet.Drawings.AddPicture("test", new FileInfo(@"r:\01.png"));
picture.SetPosition(100, 200);
然后尝试替换图片的功能,方案是在原图片的位置放置新图片,再删除原图片,本以为非常简单,结果却发现Epplus有个坑,Position属性直接返回了个null。
再网上查了一下,Epplus的Image的位置保存在From属性中,复制其From属性即可实现在同样的位置存放。
newPic.From.Column = oldPic.From.Column;
newPic.From.Row = oldPic.From.Row;
newPic.From.ColumnOff = oldPic.From.ColumnOff;
newPic.From.RowOff = oldPic.From.RowOff;
另外,如果同时要复制其大小的话,要复制其Size参数。原始的单位并不是像素。
newPic.Size.Width = oldPic.Size.Width;
newPic.Size.Height = oldPic.Size.Height;