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.

Note

Spreadsheet Control for WPF does not support pictures embedded in cells.

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