2014-07-23 1 views
4

Apache poi 3.9로 올바르게 셀을 포맷하는 데 문제가 있습니다. 나는 약간의 영어 가지고와 내 테이블의 일부 아랍어 텍스트 그래서 나는 오른쪽에서 왼쪽으로Apache poi Excel 오른쪽에서 왼쪽으로 읽기 순서 설정

ExtendedFormatRecord.setReadingOrder(2);doc

HSSFCellStyle을 사용하여 일부 세포가

HSSFCellStyle(short index, ExtendedFormatRecord rec, HSSFWorkbook workbook)shown here 만들어집니다에 readingorder를 설정해야

문제는 생성자가 보호되고 클래스가 final이라는 점입니다. 그래서 나는 그것을 확장 할 수 없다. 단일 셀에 대해 readingorder를 오른쪽에서 왼쪽으로 설정할 수 있습니까? 워크 시트의 스타일을 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 베타 3/3.11 최종) 이제 읽기 순서를 수정 설정 하는가하면

관련 문제