Почему при вставке в 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
как уже упоминалось здесь.