Écriture de texte avec une longueur maximale dans Apache POI to cell

Pour une application, je dois tester si un texte rentre dans une cellule dans Apache POI.

Pour tester rapidement certaines choses, j’ai écrit une petite application de démonstration, où j’ai écrit la quantité maximale autorisée de caractères dans une cellule. J’ai rencontré que le nombre de caractères que je pouvais écrire dans une cellule

Donc, c’est l’application de démonstration:

Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("Test"); for (int idx = 0; idx < 5; idx++) { Row row = sheet.createRow(idx); Cell cell = row.createCell(0); cell.setCellValue(StringUtils.repeat("-", wb.getSpreadsheetVersion().getMaxTextLength())); } FileOutputStream out = new FileOutputStream("test.xls"); wb.write(out); out.close(); wb.close(); 

Mais lors de l’ouverture du fichier Excel créé, je n’ai pas réussi à lire les cellules sur lesquelles j’ai écrit, pour indiquer que la cellule ne pouvait contenir qu’entre 1 et 255 caractères. Mais c’est différent de ce que j’obtiens de “wb.getSpreadsheetVersion (). GetMaxTextLength ()”. Certains caractères du texte nécessitent-ils un traitement particulier? Notez que lorsque vous écrivez plus de 255 fois “-” directement dans Excel, je n’ai aucun problème.

Utiliser “*” au lieu de “-” fonctionne comme prévu.

  • Limitation des caractères dans la cellule Excel – 32767 (2 ^ 15-1)
  • Limitation des caractères dans la cellule Excel avec la formule – 255 (2 ^ 8-1)

Ainsi, si votre premier caractère est = ou + vous optez pour la limite inférieure.