package com.aspose.cells.examples.articles; import java.nio.file.*; import java.util.ArrayList; import com.aspose.cells.*; import com.aspose.cells.examples.Utils; public class SmartMarkerGroupingImage { public static void main(String[] args) throws Exception { // The path to the documents directory. String dataDir = Utils.getSharedDataDir(SmartMarkerGroupingImage.class) + "articles/"; SmartMarkerGroupingImage grouping = new SmartMarkerGroupingImage(); grouping.Execute(dataDir); } public void Execute(String dataDir) throws Exception { // Get the image Path path = Paths.get(dataDir + "sample1.png"); byte[] photo1 = Files.readAllBytes(path); // Get the image path = Paths.get(dataDir + "sample2.jpg"); byte[] photo2 = Files.readAllBytes(path); // Create a new workbook and access its worksheet Workbook workbook = new Workbook(); Worksheet worksheet = workbook.getWorksheets().get(0); // Set the standard row height to 35 worksheet.getCells().setStandardHeight(35); // Set column widhts of D, E and F worksheet.getCells().setColumnWidth(3, 20); worksheet.getCells().setColumnWidth(4, 20); worksheet.getCells().setColumnWidth(5, 40); // Add the headings in columns D, E and F worksheet.getCells().get("D1").putValue("Name"); Style st = worksheet.getCells().get("D1").getStyle(); st.getFont().setBold(true); worksheet.getCells().get("D1").setStyle(st); worksheet.getCells().get("E1").putValue("City"); worksheet.getCells().get("E1").setStyle(st); worksheet.getCells().get("F1").putValue("Photo"); worksheet.getCells().get("F1").setStyle(st); // Add smart marker tags in columns D, E, F worksheet.getCells().get("D2").putValue("&=Person.Name(group:normal,skip:1)"); worksheet.getCells().get("E2").putValue("&=Person.City"); worksheet.getCells().get("F2").putValue("&=Person.Photo(Picture:FitToCell)"); // Create Persons objects with photos ArrayList<Person> persons = new ArrayList<Person>(); persons.add(new Person("George", "New York", photo1)); persons.add(new Person("George", "New York", photo2)); persons.add(new Person("George", "New York", photo1)); persons.add(new Person("George", "New York", photo2)); persons.add(new Person("Johnson", "London", photo2)); persons.add(new Person("Johnson", "London", photo1)); persons.add(new Person("Johnson", "London", photo2)); persons.add(new Person("Simon", "Paris", photo1)); persons.add(new Person("Simon", "Paris", photo2)); persons.add(new Person("Simon", "Paris", photo1)); persons.add(new Person("Henry", "Sydney", photo2)); persons.add(new Person("Henry", "Sydney", photo1)); persons.add(new Person("Henry", "Sydney", photo2)); // Create a workbook designer WorkbookDesigner designer = new WorkbookDesigner(workbook); // Set the data source and process smart marker tags designer.setDataSource("Person", persons); designer.process(); // Save the workbook workbook.save(dataDir + "output.xlsx", SaveFormat.XLSX); System.out.println("File saved"); } public class Person { // Create Name, City and Photo properties private String m_Name; private String m_City; private byte[] m_Photo; public Person(String name, String city, byte[] photo) { m_Name = name; m_City = city; m_Photo = photo; } public String getName() { return this.m_Name; } public void setName(String name) { this.m_Name = name; } public String getCity() { return this.m_City; } public void setCity(String address) { this.m_City = address; } public byte[] getPhoto() { return this.m_Photo; } public void setAddress(byte[] photo) { this.m_Photo = photo; } } }