Redimensionnement automatique de la largeur de colonne à l'aide de poi
Je suis ajoutant des données de l'existant excel à l'aide de POI
. Mais sur l'ajout de données, excel les en-têtes qui sont déjà présents avant le traitement sont compressés à de petites zones. Quelqu'un peut-il svp me suggérer comment l'éviter? J'ai demandé le même autoSize
après l'ajout de données, mais d'aucune utilité.
FileInputStream inputStream = new FileInputStream(new File("dataexcel.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(intputStream);
XSSFSheet sheet = workbook.getSheetAt(0);
int rowNum = sheet.getPhysicalNumberOfRows();
int cellNum = 1;
Row lastRow = sheet.createRow(rowNum);
for(int i =0 ; i<7; i++)
{
Cell cell = lastRow.createCell(cellNum++);
cell.setCellValue(value);
cell.setCellStyle(generalStyle);
}
Supposons que les en-têtes a un long texte comme "This is very long text"
et en ajoutant les 7 valeurs(2,3,1,7,4,6,5) à l'excel existant dans chaque cellule à la ligne suivante, comme ci-dessus. Puis le enitre des colonnes de largeurs de réduire à la valeur de ces chiffres individuels et les en-têtes' texte est presque invisible jusqu'à ce qu'elle est développée manuellement.
Vous devez vous connecter pour publier un commentaire.
Utilisation
autoSizeColumn()
méthode?Exemple Votre Fiche ci-dessous
Si oui, faire de l'auto de taille de colonne pour
Column c
,sheet.autoSizeColumn(2);
. Le résultat seraPI 4.0: Essayez d'appeler
sheet.autoSizeColumn(*)
après l'appel à tous decreateCell
méthodes.Je crois que c'est un problème connu dans Apache POI 3.9 et plus tôt. Le problème est POI définit la largeur de la colonne à 0. Essayez de mettre à jour à POI 3.10 et voir si cela résout votre problème.
Plus d'info à https://issues.apache.org/bugzilla/show_bug.cgi?id=55644