Skip to main content

How to: Insert and Delete Pictures

  • 3 minutes to read

This example demonstrates how to use the PictureCollection.AddPicture method overloads to insert a picture into a worksheet from different sources.

The PictureCollection.GetPicturesByName method enables you to obtain all pictures with the specified name. Call the PictureCollection.GetPictureById method to find a picture by its unique ID.

To remove a picture from a worksheet, use the picture’s Shape.Delete method.

From a File or Stream

View Example

Stream imageStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SpreadsheetControl_WPF_API_Part02.Pictures.chart.png");
SpreadsheetImageSource imageSource = SpreadsheetImageSource.FromStream(imageStream);
workbook.BeginUpdate();
// Set the measurement unit to Millimeter.
workbook.Unit = DevExpress.Office.DocumentUnit.Millimeter;
try
{
    Worksheet worksheet = workbook.Worksheets[0];
    // Insert a picture from a file so that its top left corner is in the specified cell.
    // By default the picture is named Picture1.. PictureNN.
    worksheet.Pictures.AddPicture("Pictures\\chart.png", worksheet.Cells["D5"]);
    // Insert a picture to fit in the specified range.
    worksheet.Pictures.AddPicture("Pictures\\chart.png", worksheet.Range["B2"]);
    // Insert a picture from the SpreadsheetImageSource at 120 mm from the left, 80 mm from the top, 
    // and resize it to a width of 70 mm and a height of 20 mm, locking the aspect ratio.
    worksheet.Pictures.AddPicture(imageSource, 120, 80, 70, 20, true);
    // Insert the picture to be removed.
    worksheet.Pictures.AddPicture("Pictures\\chart.png", 0, 0);
    // Remove the last inserted picture.
    // Find the shape by its name. The method returns a collection of shapes with the same name.
    Shape picShape = worksheet.Shapes.GetShapesByName("Picture 4")[0];
    picShape.Delete();
}
finally
{
    workbook.EndUpdate();
}

From URI

View Example

string imageUri = "https://www.devexpress.com/Products/NET/Document-Server/i/Unit-Conversion.png";
// Create an image from Uri.
SpreadsheetImageSource imageSource = SpreadsheetImageSource.FromUri(imageUri, workbook);
// Set the measurement unit to point.
workbook.Unit = DevExpress.Office.DocumentUnit.Point;

workbook.BeginUpdate();
try
{
    Worksheet worksheet = workbook.Worksheets[0];
    // Insert a picture from the SpreadsheetImageSource at 100 pt from the left, 40 pt from the top, 
    // and resize it to a width of 200 pt and a height of 180 pt.
    worksheet.Pictures.AddPicture(imageSource, 100, 40, 200, 180 );
}
finally
{
    workbook.EndUpdate();
}