隨筆-153  評論-235  文章-19  trackbacks-0

          目前比較流行的生成Excel文件的有poi和Jexcelapi

          poi加中文有問題

          必需對每一個Cell設(shè):

          cell.setEncoding(HSSFCell.ENCODING_UTF_16);

          才不會中文亂碼.沒有找到更好的方法一次性設(shè)置所有Cell的字符屬性


          用Jexcelapi試下發(fā)現(xiàn)不會出現(xiàn)中文問題,是因為它是韓國人寫的吧,以多字節(jié)字符為根點

          還是喜歡用Jexcelapi

          下載: http://sourceforge.net/project/showfiles.php?group_id=79926

          :)
          posted on 2007-03-21 19:06 流浪汗 閱讀(3570) 評論(4)  編輯  收藏 所屬分類: JAVA/J2EE

          評論:
          # re: poi會中文亂碼,Jexcelapi不會 2007-08-16 16:26 | pkmuwen
          //EXCEL表的名
          String fileName = url+currDate+Book_Name;
          //獲得WORKBOOK
          HSSFWorkbook wb = new HSSFWorkbook();
          //獲得EXCEL表的名
          FileOutputStream fos = new FileOutputStream(fileName);
          //例子名
          ArrayList arraylist = new ArrayList();
          arraylist.add("語文");
          arraylist.add("數(shù)學(xué)");

          int arraylength = arraylist.size();
          //設(shè)置編碼
          //cell.setEncoding((short) HSSFCell.CELL_TYPE_STRING);
          for(int len=0;len<arraylength;len++){
          String name = (String)arraylist.get(len);
          //獲取SHEET名
          HSSFSheet sheet = wb.createSheet(name);
          for(int i=0;i<26;i++){
          //獲得行
          HSSFRow row = sheet.createRow((short)i);
          for(int j=0;j<26;j++){
          // HSSFCell cell = null;
          // cell.setEncoding((short) HSSFCell.CELL_TYPE_STRING);
          //獲得單元格
          // row.createCell((short)j).setEncoding((short) HSSFCell.ENCODING_UTF_16);
          //row.createCell((short)j).setEncoding(HSSFCell.ENCODING_UTF_16);
          HSSFCell cell = row.createCell((short)j);
          // cell.setEncoding(HSSFCell.ENCODING_UTF_16);
          cell.setEncoding((short)HSSFCell.ENCODING_UTF_16);
          row.createCell((short)j).setCellValue("靠不出來");

          }
          }
          }
          //數(shù)據(jù)WRITE
          wb.write(fos);
          //關(guān)閉本次數(shù)據(jù)流寫入
          fos.close();



          寫了cell.setEncoding(HSSFCell.ENCODING_UTF_16); 照樣出現(xiàn)亂碼。。
          幫看看 那里寫得不對  回復(fù)  更多評論
            
          # re: poi會中文亂碼,Jexcelapi不會 2007-08-16 20:51 | 流浪汗
          在使用這前設(shè)置
          你的代碼沒有縮進(jìn),沒有看下去
          你這句當(dāng)然不行了
          row.createCell((short)j).setCellValue("靠不出來");



          我的如下:

          cell = sheetRow.createCell((short) 1);
          cell.setEncoding(HSSFCell.ENCODING_UTF_16);
          cell.setCellValue(user.getUserName());  回復(fù)  更多評論
            
          # re: poi會中文亂碼,Jexcelapi不會 2007-08-17 11:33 | pkmuwen
          謝了 可以了
          我以后會注意代碼縮進(jìn)的 不好意思
            回復(fù)  更多評論
            
          # re: poi會中文亂碼,Jexcelapi不會 2007-08-17 11:41 | pkmuwen
          對了 我還有個問題請幫解答:
          我要得到SHEET的個數(shù)是用:
          wb.getNumberOfSheets()
          這個方法嗎?
            回復(fù)  更多評論
            

           
          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          留言簿(14)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          友情鏈接

          同學(xué)鏈接

          學(xué)習(xí)鏈接

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 559667
          • 排名 - 86

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新邵县| 紫云| 克拉玛依市| 临洮县| 宁蒗| 红安县| 济源市| 扬州市| 贵阳市| 民权县| 库车县| 增城市| 略阳县| 茶陵县| 礼泉县| 万源市| 阿克陶县| 岱山县| 禹城市| 龙井市| 威远县| 江川县| 泽库县| 肥城市| 昔阳县| 武乡县| 衢州市| 库尔勒市| 六枝特区| 江油市| 普兰店市| 甘泉县| 奈曼旗| 金塔县| 霍林郭勒市| 同仁县| 逊克县| 彭水| 南通市| 毕节市| 玉树县|