2016-03-18 6 views
-1

Ich habe diesen Code bekam ein Bild in Excel einfügen:Warum wird ein Bild beim Einfügen in Excel größer angezeigt als seine tatsächliche Größe, und wie kann es in seiner natürlichen Größe angezeigt werden?

. . . 
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"; 
} 

Es funktioniert, aber druckt das Bild größer als seine tatsächliche Größe, wie oben hier (Excel gesehen, als Bildbetrachter auf das erscheint unten):

enter image description here

es ist nicht ein Problem mit einem bestimmten Bild: es geschieht mit irgend:

enter image description here

Also muss ich die Breite und Höhe um 70% oder etwas multiplizieren, um es gleich zu bekommen?

+1

Versuchen Sie, '-1' für die Breite und die Höhe einzugeben, wie bereits erwähnt [hier] (https://msdn.microsoft.com/en-us/library/office/ff198302.aspx). – Quantic

+2

Und was passiert, wenn Sie das Bild selbst kopieren und einfügen? Wie bereits erwähnt (http://superuser.com/questions/211020/prevent-outlook-2010-insert-picture-resizing-image), zeigt Excel Bilder basierend auf der physischen Größe an, sodass die DPI-Einstellung des Bilds skaliert wird es; es wird nicht einfach 1 Bildpixel auf 1 Bildschirmpixel abgebildet, das passiert nur, wenn die DPI-Bilder die gleiche wie die Windows-Einstellung sind. Möglicherweise müssen Sie das Bild in die Image-Klasse einlesen, die Eigenschaften Vertical und HorizontalResolution ändern, es dann erneut in der temporären Datei speichern und diese temporäre Datei der Tabelle hinzufügen. – Quantic

+0

Sie können die dpi des Bildes sehr einfach einstellen! – TaW

Antwort

1

Versuchen Sie -1 für width und height einzugeben, wie erwähnt here.