Я добавлю метод для Simfoot
, чтобы он возвращал все значения:
public List<String> getAllValues() {
return Arrays.asList(getAtt1(), getAtt2(), .. , getAtt234());
}
Затем создайте строку для каждого атрибута, а затем вы можете объединить строки первых 2 столбцов.Пример здесь с 6 атрибутами:
int n = 6; // would be 234 for you
XSSFCellStyle styleAlignTop = workbook.createCellStyle();
styleAlignTop.setVerticalAlignment(VerticalAlignment.TOP);
Row row;
for(int i=0; i<n; i++) {
row = sheet.createRow(i);
if(i==0) {
Cell cell = row.createCell(1);
cell.setCellStyle(styleAlignTop);
cell.setCellValue("Consult our values");
}
row.createCell(2).setCellValue(simEntity.getAllValues().get(i));
}
sheet.addMergedRegion(new CellRangeAddress(0, n-1, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(0, n-1, 1, 1));
Это выглядит так:
Другой способ перечислить ваши атрибуты - использовать Reflection, но я нахожу егоочень неуклюжий:
Simfoot simEntity = new Simfoot("pap", "pep", "pip", "pop", "pup", "pyp");
for(PropertyDescriptor propertyDescriptor :
Introspector.getBeanInfo(Simfoot.class).getPropertyDescriptors()) {
System.out.println(propertyDescriptor.getReadMethod().invoke(simEntity));
}
Выходы:
pap
pep
pip
pop
pup
pyp
class Simfoot
, поэтому вы должны отфильтровать getClass
и любые другие нежелательные методы и методы получения