// 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(AddPDFBookmarks.class);
// Instantiate a new workbook.
Workbook workbook = new Workbook();

// Get the worksheets in the workbook.
WorksheetCollection worksheets = workbook.getWorksheets();

// Add a sheet to the workbook.
worksheets.add("1");

// Add 2nd sheet to the workbook.
worksheets.add("2");

// Add the third sheet.
worksheets.add("3");

// Get cells in different worksheets.
Cell cellInPage1 = worksheets.get(0).getCells().get("A1");
Cell cellInPage2 = worksheets.get(1).getCells().get("A1");
Cell cellInPage3 = worksheets.get(2).getCells().get("A1");

// Add a value to the A1 cell in the first sheet.
cellInPage1.setValue("a");

// Add a value to the A1 cell in the second sheet.
cellInPage2.setValue("b");

// Add a value to the A1 cell in the third sheet.
cellInPage3.setValue("c");

// Create the PdfBookmark entry object.
PdfBookmarkEntry pbeRoot = new PdfBookmarkEntry();

// Set its text.
pbeRoot.setText("root");

// Set its destination source page.
pbeRoot.setDestination(cellInPage1);

// Set the bookmark collapsed.
pbeRoot.setOpen(false);

// Add a new PdfBookmark entry object.
PdfBookmarkEntry subPbe1 = new PdfBookmarkEntry();

// Set its text.
subPbe1.setText("1");

// Set its destination source page.
subPbe1.setDestination(cellInPage2);

// Add another PdfBookmark entry object.
PdfBookmarkEntry subPbe2 = new PdfBookmarkEntry();

// Set its text.
subPbe2.setText("2");

// Set its destination source page.
subPbe2.setDestination(cellInPage3);

// Create an array list.
ArrayList subEntryList = new ArrayList();

// Add the entry objects to it.
subEntryList.add(subPbe1);
subEntryList.add(subPbe2);
pbeRoot.setSubEntry(subEntryList);

// Set the PDF bookmarks.
PdfSaveOptions options = new PdfSaveOptions();
options.setBookmark(pbeRoot);

// Save the PDF file.
workbook.save(dataDir, options);