我在使用Apache poi 3.9正确格式化单元格时遇到问题。我的桌子上有一些英语和一些阿拉伯文字,因此我需要使用以下命令将某些单元格的阅读顺序从右到左设置
ExtendedFormatRecord.setReadingOrder(2); doc

HSSFCellStyle创建与
HSSFCellStyle(short index, ExtendedFormatRecord rec, HSSFWorkbook workbook) shown here

问题是,构造函数受到保护,并且该类是最终的。所以我不能扩展它。是否可以将单个单元的阅读顺序设置为从右到左?我不需要将工作表的样式设置为rtl。而且这不能解决问题。

最佳答案

这就是反射的工作方式。

Constructor<HSSFCellStyle> 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);

08-27 10:16