Je suis débutant à Apache POI api. J'essaie de créer une feuille Excel en utilisant arraylist.
Mon Java est le suivant.
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFCellStyle style = wb.createCellStyle();
style.setFillForegroundColor(HSSFColor.Lime.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
HSSFRow row4 = sheet.createRow(4);
row4.createCell(4).setCellValue("name");
row4.createCell(5).setCellValue("emailId");
sheet.autoSizeColumn(5);
List<Bean> nameList = this.getArrayList();
Iterator<Bean> nameListIterator = nameList.iterator();
sheet.autoSizeColumn(5);
int i=5;
HSSFRow row = null;
while(nameListIterator.hasNext())
{
Bean bean = nameListIterator.next();
row = sheet.createRow(i);
row.createCell(4).setCellValue(bean.getName());
row.createCell(5).setCellValue(bean.getMailId());
i++;
}
L'arrayliste est le suivant:
List<Bean> beanList = new ArrayList<Bean>();
beanList.add(new Bean("Amy","[email protected]"));
beanList.add(new Bean("Joan","[email protected]"));
beanList.add(new Bean("Megan","[email protected]"));
beanList.add(new Bean("Joe","[email protected]"));
beanList.add(new Bean("Febi","[email protected]"));
Lorsque la feuille Excel est générée, la colonne ne s'adapte pas correctement à la taille du contenu. J'ai recherché Google sur ce problème et trouvé
sheet.autoSizeColumn (5);
est la solution à mon problème. J'ai ajouté comme dans le code ci-dessus, mais le problème persiste. L'utilise-je correctement?
N 'y a-t-il pas une autre solution?
Veuillez aider
Merci d'avance
P.s: J'utilise Apache Poi 3.6
Il vous suffit de déplacer l'appel vers
sheet.autoSizeColumn(5);
à un point dans votre code après les données ont été ajoutées, donc juste après votre boucle while devrait fonctionner.