65.9K
CodeProject is changing. Read more.
Home

How to Add an Image to an Excel Sheet

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (2 votes)

Nov 14, 2015

CPOL
viewsIcon

7431

Adding an image to an Excel spreadsheet

Adding Images Spo-Dee-O-Dee

You can add an image to your Excel spreadsheet quite easily (this assumes that you are using Microsoft.Office.Interop.Excel assembly reference, in C#) like this:

private Worksheet _xlSheet;
private Image _platypusLogo;
. . .
private void AddImage()
{
    Clipboard.SetDataObject(_platypusLogo, true);
    var cellRngImg = (Range)_xlSheet.Cells[IMAGE_ROW, IMAGE_COLUMN];
    _xlSheet.Paste(cellRngImg, _platypusLogo);
}

Note that "IMAGE_ROW" and "IMAGE_COLUMN" are int constants or you can just use hard-coded ints, if you want to fly in the face of Steve McConnell's advice in Code Complete about constantifying all numbers other than sometimes 0 and 1.

An image needs to be assigned to _platypusLogo. If you are using a C# utility app to dynamically generate the Excel spreadsheet, you could add a PictureBox control to a form, and then assign an image to it via its Image property (the control is named, by default, pictureBox1), and then assign it to the spreadsheet this way:

_platypusLogo = pictureBox1.Image;

Of course, you can assign to _platypusLogo directly/exclusively in code, too, if you prefer.