Почему при вставке в Excel изображение отображается больше, чем его фактический размер, и как я могу заставить его отображаться в натуральном размере?

У меня есть этот код для вставки изображения в Excel:

. . .
string unitImageLoc = GetUnitImageLoc();
if (unitImageLoc != "image not found")
{
    Image img = Image.FromFile(unitImageLoc);
    int imgWidth = img.Width;
    int imgHeight = img.Height;
    _xlSheet.Shapes.AddPicture(unitImageLoc, 
Microsoft.Office.Core.MsoTriState.msoFalse, 
Microsoft.Office.Core.MsoTriState.msoCTrue, 4, 4, imgWidth, imgHeight); 
}

private string GetUnitImageLoc()
{
    string unitUpper = _unit.ToUpper();
    string candidateFile = string.Format("C:\\RoboReporter\\{0}.png", 
unitUpper);
    if (File.Exists(candidateFile))
    {
        return candidateFile;
    }
    return "image not found";
}

Это работает, но печатает изображение, превышающее его фактический размер, как показано здесь (Excel сверху, как показано в окне просмотра изображений снизу):

Это не проблема с конкретным изображением: это происходит с любым:

Так нужно ли умножать ширину и высоту на 70% или что-то такое, чтобы они были одинаковыми?

1 ответ

Решение

Попробуйте войти -1 за width а также height как уже упоминалось здесь.

Другие вопросы по тегам