今天寫一個小程序用到了操作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;