2016-08-03 4 views
-1

Ich habe diesen EPPlus Code eine Bitmap auf einer Excel-Tabelle in Spalte 5/E, Reihe 1 zu platzieren:Warum erscheint meine Bitmap nicht zentriert (eine Zelle zu weit rechts und unten)?

using (var package = new ExcelPackage(file)) 
{ 
    . . . 
    AddImage(locationWorksheet, 1, 5, imgPath); 
    . . . 
} 

private void AddImage(ExcelWorksheet oSheet, int rowIndex, int colIndex, string imagePath) 
{ 
    Bitmap image = new Bitmap(imagePath); 
    { 
     var excelImage = oSheet.Drawings.AddPicture("PRO*ACT Logo", image); 
     excelImage.From.Column = colIndex; 
     excelImage.From.Row = rowIndex; 
     excelImage.SetSize(108, 84); 
    } 
} 

Das Bild ist eine PNG-Datei, wobei die Abmessungen gezeigt (108X84).

Obwohl das Bild bei tghe Kreuzung der Zeile 1 und Spalte 5, dann ist es eigentlich mehr wie Zeile 2 und Spalte 6 angezeigt werden soll: Diese

enter image description here

Warum, und wie kann ich korrigieren?

Hinweis: Excel-Spalten- und Zeilenindizes sind 1-basiert (nicht 0).

Antwort

1

Vielleicht sucht AddImage nach dem Index der Zeile/Spalte anstelle der Zeilen-/Spaltennummer. Wenn das der Fall ist, würden Sie die Zeilen/Spalten als 0, 1, 2, 3, 4 usw. zählen.

Wenn Sie eins von Ihren aktuellen Werten subtrahieren, sollten Sie in Ordnung sein. Es ist relativ üblich, einen Index zu verwenden, um einen Standort in einer Liste oder einem Raster zu referenzieren, also würde ich sagen, dass das eine sichere Sache ist.

+0

Das war es - ärgerlich, dass Excel normalerweise merkwürdig indiziert wird - auf 1 - aber in diesem Fall kehrt die Normalität zurück. –

+1

Sie haben Recht. Excel verwendet an einigen Stellen nullbasierte Indizes (VBA) und keine anderen (Formeln). – trademark

Verwandte Themen