استخدام علامات الصورة أثناء تجميع البيانات في العلامات الذكية

استخدام علامات الصورة أثناء تجميع البيانات في العلامات الذكية

نموذج التعليمات البرمجية التالي بإنشاء مصنف ثم ثم يضيف علامات العلامة الذكية التالية في الخلايا D2 و E2 و F2 على التوالي.

 &=Person.Name(group:normal,skip:1)

&=Person.City

&=Person.Photo(Picture:FitToCell)

ثم يملأ مصدر البيانات بالبيانات ويستدعيالمصنف المصمم. العملية () طريقة لمعالجة علامات العلامات الذكية. يستخدم الرمز هذه الصور أيmoon.png وmoon2.png لكن يمكنك استخدام أي صورة. تُظهر لقطة الشاشة التالية إخراج نموذج التعليمات البرمجية هذا. كما ترى ، يتم تجميع البيانات الموجودة في العمود E و F فيما يتعلق بالبيانات الموجودة في العمود D.

ما يجب القيام به: image_بديل_نص

public static void main(String[] args) throws Exception {
// The path to the documents directory.
String dataDir = Utils.getDataDir(SmartMarkerGroupingImage.class);
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; }
}