2017-07-28 18 views
0

私はapache poiを使って.xlsxファイルを作成しようとしています。 arbaricやhindiなどの文字でうまくいきます。しかし私は私のアプリケーションで私たちも中国語の文字を使用しています。私のコードを使用して.xlsxファイルを作成しているときは、漢字のみが表示されません。私はこのコードを.xlsxファイルの作成に使用しています。poiを中国語の文字で使用しているjavaの.xlsxファイル

Workbook wb = new HSSFWorkbook(); 
     Sheet sheet = wb.createSheet("new sheet"); 
     // Create a row and put some cells in it. Rows are 0 based. 
     Row row = sheet.createRow(1); 
     // Create a cell and put a value in it. 
     Cell cell = row.createCell(1); 
     //arbaric char set in cell and show successfully in .xlsx 
     cell.setCellValue("سلام"); 
     Cell cell2 = row.createCell(2); 
     **//chinese char set in cell and not show in .xlsx** 
     cell2.setCellValue(" 邓敏 "); 
     Cell cell3 = row.createCell(3); 
     //hindi char set in cell here and show successfully in .xlsx 
     cell3.setCellValue("हिन्दी"); 
     // Write the output to a file 
     FileOutputStream fileOut = new FileOutputStream("workbook5.xlsx"); 
     wb.write(fileOut); 
     fileOut.close(); 

誰でも私が中国語の文字を.xlsxファイルに書き込むには、apache poi libraryを使用することができますか?私はユニコードでのいわゆる「サロゲートペア」に関連したApacheのPOIにおけるいくつかの既知のバグがあります enter image description here

+1

あなたの見出しには ".xlsxファイルを書きます"と書かれていますが、あなたのコードでは明らかに '* .xlsx'ではなく' BIFF'' * .xls'である 'HSSFWorkbook'が使用されています。どうか明らかにしてください。 –

+0

'HSSFWorkbook'と' apache poi'バージョン3.16を使って問題を再現できません。すべてのユニコードが正しく表示されます。 –

+0

私は同じコードを使用して、同じ問題を再現することができます –

答えて

1

事前に.xlsx形式のファイルを添付しoutput.Thanksの下には、https://bz.apache.org/bugzilla/show_bug.cgi?id=58247https://bz.apache.org/bugzilla/show_bug.cgi?id=54084を参照してください。

残念ながら、別のライブラリの中で深刻に発生するため、修正するのは容易ではありません。他の中国語のキャラクターを試してみてください。そのうちいくつかはうまく動作しない場合もありますし、そうでない場合も同じ問題です。

サードパーティのlibを修正する作業がいくつかありました。https://bz.apache.org/bugzilla/show_bug.cgi?id=59268を参照してください.XXBeans-jarをhttp://mvnrepository.com/artifact/com.github.pjfanning/xmlbeansのものに置き換え、問題が解決するかどうか確認してください。私たちがそれが動作することを知っているので、あなたがしようとすると、バグにコメントしてください!

関連する問題