Apache poi Excel从右到左设置阅读顺序

时间:2014-07-23 13:18:56

标签: java excel apache apache-poi

我在使用Apache poi 3.9正确格式化单元格时遇到问题。我的表中有一些英文和一些阿拉伯语文本,因此我需要使用

将读取顺序设置为从右到左的某些单元格

ExtendedFormatRecord.setReadingOrder(2); doc

使用

创建HSSFCellStyle

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

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

2 个答案:

答案 0 :(得分:0)

这就是它与反射的结合方式。

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

答案 1 :(得分:0)

您只需使用较新版本的Apache POI!

最新的夜间版本(所以未来3.11 beta 3 / 3.11 final)现在包含您搜索的方法HSSFCellStyle.setReadingOrder(short)