2014-07-23 70 views
4

我有問題要用Apache poi 3.9正確格式化單元格。我得到了一些英語,在我的表中的一些阿拉伯文字,所以我需要的readingorder設置爲從右到左用Apache poi Excel設置閱讀器從右到左

ExtendedFormatRecord.setReadingOrder(2);doc

一個HSSFCellStyle一些細胞與

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

問題是,構造函數是受保護的,而類是最終的。所以我無法擴展它。是否有可能將讀碼器從右到左設置爲單個單元格?我不需要將工作表的樣式設置爲rtl。這也不能解決問題。

+0

方法HSSFCellStyle.setReadingOrder(short)是否設置讀取順序解決這個問題?即設置順序爲2的問題,還是應該怎麼做? – Gagravarr

+0

問題是我需要將readingOrder設置爲2,但我認爲這是不可能的。解決方法無需更改值就可以。 – klars

+0

短期來看,嘗試一些反思,只是爲了檢查它真的解決了它。如果是這樣,我們可以幫助您找到更清潔的方式 – Gagravarr

回答

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

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

最新的每晚構建(所以未來3.11的Beta 3/3.11最終)現在包括你搜索