2016-08-03 2 views
-1

У меня есть этот EPPlus код для размещения растрового изображения на электронную таблицу Excel в столбце 5/Е, строка 1:Почему мое растровое изображение выглядит нецентрированным (одна ячейка слишком далеко справа и внизу)?

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); 
    } 
} 

Изображение представляет собой файл .png, с размерами, указанными (108X84).

Хотя изображение должно отображаться на tghe пересечении строки 1 и столбца 5, на самом деле это больше похоже на строке 2 и столбце 6:

enter image description here

Почему, и как можно исправить это?

Примечание: индексы столбцов и строк Excel основаны на 1 (не 0).

ответ

1

Возможно, AddImage ищет индекс строки или столбца, а не номер строки/столбца. Если это так, то вы считаете строки/столбцы как 0, 1, 2, 3, 4 и т. Д.

Если вы вычтете один из ваших текущих значений, вы должны быть в порядке. Общепринято использовать индекс для ссылки на местоположение в списке или сетке, поэтому я бы сказал, что это безопасная ставка.

+0

Это было так - иронично, что Excel обычно индексируется странно - на 1, но в этом случае возвращается нормальность. –

+1

Вы правы. Excel использует нулевые индексы в некоторых местах (VBA), а не другие (формулы). – trademark

Смежные вопросы