Добавление картинки в определенный диапазон ячеек 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);
    }

которая работает не корректно. Ожидаемым результатом этой функции является вставка и растяжение картинки в диапазоне выделенных ячеек. Фактический результат картинка выходит за пределы диапазона и не расстёгивается на столько на сколько нужно либо же растягивается слишком сильно. Подскажите пожалуйста как можно решить данную проблему, может у кого есть другие функции или есть мысли как эту функцию модернизировать?


Ответы (0 шт):