Apache poi Excel défini le readorder de droite à gauche

J’ai des problèmes pour formater une cellule avec Apache poi 3.9 correctement. J’ai quelques mots en anglais et en arabe dans ma table, donc je dois régler le liseur de droite à gauche pour certaines cellules en utilisant

ExtendedFormatRecord.setReadingOrder(2); doc

Un HSSFCellStyle est créé avec

HSSFCellStyle(short index, ExtendedFormatRecord rec, HSSFWorkbook workbook) montré ici

Le problème est que le constructeur est protégé et que la classe est définitive. Donc je ne peux pas le prolonger. Existe-t-il une possibilité de régler l’ordre de lecture de droite à gauche pour une seule cellule? Je n’ai pas besoin de définir le style de la feuille de calcul sur rtl. En outre, cela ne résout pas le problème.

Voilà comment cela fonctionne avec la reflection.

 Constructor con = HSSFCellStyle.class.getDeclaredConstructor(short.class, ExtendedFormatRecord.class, HSSFWorkbook.class); con.setAccessible(true); ExtendedFormatRecord eFR = new ExtendedFormatRecord(); short ro = 2; eFR.setReadingOrder(ro); short s = 0; HSSFWorkbook generatedWb = new HSSFWorkbook(); HSSFCellStyle myStyle = con.newInstance(s, eFR, generatedWb); 

Il vous suffit d’utiliser une nouvelle version d’Apache POI!

Les dernières builds nocturnes (donc 3.11 beta 3 / 3.11 final) incluent maintenant la méthode HSSFCellStyle.setReadingOrder (short) que vous recherchez