Добавление картинки в определенный диапазон ячеек Excel
Есть функция
public void InsertPicture(Excel.Picture pic, Excel.Range sel, AspectRatioMode mode)
{
var copyPic = (Excel.Picture)pic.Duplicate();
var xlSheet = sel.Worksheet;
var lastCell = (Excel.Range)(xlSheet.Cells[sel.Row + sel.Rows.Count - 1, sel.Column + sel.Columns.Count - 1]);
var w = Convert.ToSingle(lastCell.Left) + Convert.ToSingle(lastCell.Width) - Convert.ToSingle(sel.Left);
var h = Convert.ToSingle(lastCell.Top) + Convert.ToSingle(lastCell.Height) - Convert.ToSingle(sel.Top);
var ar = Convert.ToSingle(copyPic.Width / copyPic.Height);
switch (mode)
{
case AspectRatioMode.None:
break;
case AspectRatioMode.FitToRows:
w /= ar;
break;
case AspectRatioMode.FitToColumns:
h *= ar;
break;
}
copyPic.Width = w;
copyPic.Height = h;
copyPic.Left = (double)lastCell.Left;
copyPic.Top = (double)lastCell.Top;
copyPic.CopyPicture(Excel.XlPictureAppearance.xlPrinter, Excel.XlCopyPictureFormat.xlPicture);
xlSheet.Paste(this.range, copyPic);
}
которая работает не корректно. Ожидаемым результатом этой функции является вставка и растяжение картинки в диапазоне выделенных ячеек. Фактический результат картинка выходит за пределы диапазона и не расстёгивается на столько на сколько нужно либо же растягивается слишком сильно. Подскажите пожалуйста как можно решить данную проблему, может у кого есть другие функции или есть мысли как эту функцию модернизировать?