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

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

          poi加中文有問題

          必需對每一個Cell設:

          cell.setEncoding(HSSFCell.ENCODING_UTF_16);

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


          用Jexcelapi試下發現不會出現中文問題,是因為它是韓國人寫的吧,以多字節字符為根點

          還是喜歡用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("數學");

          int arraylength = arraylist.size();
          //設置編碼
          //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("靠不出來");

          }
          }
          }
          //數據WRITE
          wb.write(fos);
          //關閉本次數據流寫入
          fos.close();



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



          我的如下:

          cell = sheetRow.createCell((short) 1);
          cell.setEncoding(HSSFCell.ENCODING_UTF_16);
          cell.setCellValue(user.getUserName());  回復  更多評論
            
          # re: poi會中文亂碼,Jexcelapi不會 2007-08-17 11:33 | pkmuwen
          謝了 可以了
          我以后會注意代碼縮進的 不好意思
            回復  更多評論
            
          # re: poi會中文亂碼,Jexcelapi不會 2007-08-17 11:41 | pkmuwen
          對了 我還有個問題請幫解答:
          我要得到SHEET的個數是用:
          wb.getNumberOfSheets()
          這個方法嗎?
            回復  更多評論
            
          主站蜘蛛池模板: 若尔盖县| 从化市| 汉阴县| 神农架林区| 越西县| 西吉县| 永兴县| 阿鲁科尔沁旗| 无棣县| 涞源县| 揭阳市| 同仁县| 通化县| 肥西县| 庆城县| 阿城市| 沾化县| 胶南市| 南丹县| 金昌市| 贞丰县| 洱源县| 兴业县| 望城县| 盱眙县| 黑河市| 化德县| 饶阳县| 额敏县| 勐海县| 蛟河市| 定边县| 岗巴县| 东乌珠穆沁旗| 赤城县| 宁乡县| 大理市| 丰台区| 湘潭市| 大名县| 扎兰屯市|