Managing Pictures

Aspose.Cells allows developers to add pictures to spreadsheets at runtime. Moreover, the positioning of these pictures can be controlled at runtime, which is discussed in more detail in the coming sections.

This article explains how to add pictures, and how to insert an image that shows the content of certain cells.

Adding Pictures

Adding pictures to a spreadsheet is very easy. It only takes a few lines of code.

Simply call the add method of the Pictures collection (encapsulated in the Worksheet object). The add method takes the following parameters:

  • Upper left row index, the index of the upper left row.
  • Upper left column index, the index of the upper left column.
  • Image file name, the name of the image file, complete with path.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(AddingPictures.class);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
WorksheetCollection worksheets = workbook.getWorksheets();
// Obtaining the reference of first worksheet
Worksheet sheet = worksheets.get(0);
// Adding a picture at the location of a cell whose row and column indices are 5 in the worksheet. It is "F6" cell
int pictureIndex = sheet.getPictures().add(5, 5, dataDir + "logo.jpg");
Picture picture = sheet.getPictures().get(pictureIndex);
// Saving the Excel file
workbook.save(dataDir + "book1.xls");

Positioning of Pictures

Pictures can be positioned using Aspose.Cells as follows:

Absolute Positioning

Developers can position the pictures absolutely by using the setUpperDeltaX and setUpperDeltaY methods of the Picture object.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(AbsolutePositioning.class);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the newly added worksheet.
int sheetIndex = workbook.getWorksheets().add();
Worksheet worksheet = workbook.getWorksheets().get(sheetIndex);
// Adding a picture at the location of a cell whose row and column indices are 5 in the worksheet. It is "F6" cell
int pictureIndex = worksheet.getPictures().add(5, 5, dataDir + "logo.jpg");
Picture picture = worksheet.getPictures().get(pictureIndex);
// Positioning the picture proportional to row height and colum width
picture.setUpperDeltaX(200);
picture.setUpperDeltaY(200);
// Saving the Excel file
workbook.save(dataDir + "test_pictures.xls");

Advance topics

  • Insert a Linked Picture from Web Address
  • Insert a Picture based on Cell Reference
  • Insert Web Image from a URL into an Excel Worksheet