JAVA—咖啡館

          ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗,分享JAVA帶來的快樂!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問題請與我聯(lián)系。

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
          package *.*

          import java.util.ArrayList; 
          import java.util.Iterator; 

          import org.apache.poi.hssf.usermodel.HSSFCell; 
          import org.apache.poi.hssf.usermodel.HSSFCellStyle; 
          import org.apache.poi.hssf.usermodel.HSSFFont; 
          import org.apache.poi.hssf.usermodel.HSSFRow; 
          import org.apache.poi.hssf.usermodel.HSSFSheet; 
          import org.apache.poi.hssf.usermodel.HSSFWorkbook; 

          public class FontCellStyle 
          private static HSSFFont fontStyle = null
          private static HSSFCellStyle cellStyle = null

          /*設(shè)置字體格式*/ 
          public static HSSFFont getHdrFont(HSSFWorkbook wb) 
          fontStyle 
          = wb.createFont(); 
          fontStyle.setFontName(
          "宋體"); 
          fontStyle.setFontHeightInPoints((
          short)20); 
          fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
          return fontStyle; 
          }
           
          public static HSSFFont getFtrFont(HSSFWorkbook wb) 
          fontStyle 
          = wb.createFont(); 
          fontStyle.setFontName(
          "宋體"); 
          fontStyle.setFontHeightInPoints((
          short)12); 
          fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); 
          return fontStyle; 
          }
           
          public static HSSFFont getContentFont(HSSFWorkbook wb) 
          fontStyle 
          = wb.createFont(); 
          fontStyle.setFontName(
          "宋體"); 
          fontStyle.setFontHeightInPoints((
          short)12); 
          fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); 
          return fontStyle; 
          }
           
          public static HSSFFont getMergeConflictFont(HSSFWorkbook wb) 
          fontStyle 
          = wb.createFont(); 
          fontStyle.setFontName(
          "Arial"); 
          fontStyle.setFontHeightInPoints((
          short)12); 
          fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); 
          fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
          return fontStyle; 
          }
           
          /*設(shè)置Excel單元格格式,引用到字體格式*/ 
          public static HSSFCellStyle getAnyCellStyle(HSSFWorkbook wb,HSSFFont font,short align,short valign,short indent,boolean wrapText) 
          cellStyle 
          =wb.createCellStyle(); 
          if(font != null) cellStyle.setFont(font); 
          if(align > 0) cellStyle.setAlignment(align); 
          if(valign > 0) cellStyle.setVerticalAlignment(valign); 
          if(indent > 0) cellStyle.setIndention(indent); 
          cellStyle.setWrapText(wrapText); 
          return cellStyle; 
          }
           

          /*設(shè)置Excel單元格行高、列寬*/ 
          public static void setDefaultHighWidth(HSSFSheet sheet) 
          sheet.setDefaultRowHeightInPoints(
          10); 
          sheet.setDefaultColumnWidth((
          short20); 
          }
           
          public static void setDefaultCellHighWidthInRange(HSSFSheet sheet,short[] eachCellWidth,int high) 
          //假定第一行和第一行所需的單元個已經(jīng)建立好了,也就是說,在這之前已經(jīng)調(diào)用了DesignXlsHeaderFooter.setXlsHeader 
          sheet.setDefaultRowHeightInPoints(high);//設(shè)置默認(rèn)高 
          /*設(shè)置各列單元格寬度*/ 
          for(int i = 0;i < eachCellWidth.length;i++
          //System.out.print(""+i+"\t"); 
          sheet.setColumnWidth((short) i,(short) ((eachCellWidth[i])*256)); 
          }
           
          //System.out.println(); 
          /* 
          Iterator arrayItr = eachCellWidth.iterator(); 
          short width; 
          short pos = 0; 
          while(arrayItr.hasNext()) { 
          width = Short.parseShort((String)arrayItr.next()); 
          sheet.setColumnWidth(pos,width); 
          pos++; 

          */
           
          }
          //end_setDefaultCellHighWidthInRange 
          }
           


          /*調(diào)用方式*/ 

          /*設(shè)置整體excel單元格格式*/ 

          FileOutputStream fos 
          = null
          try 
          fos 
          = new FileOutputStream(rptRealPathAndName); 
          }
           catch (FileNotFoundException e) 
          // TODO Auto-generated catch block 
          //System.out.println("創(chuàng)建文件失敗。。。"); 
          log.info("In WriteRptByType.writeRptTypeFive(),create file failed!!!"); 
          log.error(e.getMessage()); 
          //e.printStackTrace(); 
          return -1
          }
           
          HSSFWorkbook workBook 
          = new HSSFWorkbook(); 
          HSSFSheet sheet 
          = workBook.createSheet();; 
          workBook.setSheetName(
          0,"移動",HSSFWorkbook.ENCODING_UTF_16); 
          HSSFCellStyle cellStyleHdr 
          = FontCellStyle.getAnyCellStyle(workBook,FontCellStyle.getHdrFont(workBook),HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_CENTER, (short)-1true); 

          HSSFRow curRow 
          = sheet.createRow(0); 
          HSSFCell curCell
          = curRow.createCell((short)0); 
          curCell.setEncoding(HSSFCell.ENCODING_UTF_16); 
          curCell.setCellStyle(cellStyleHdr ); 
          curCell.setCellValue(
          "可以寫入漢字,無亂碼"); 

          /*.寫入文件.*/ 

          try 
          workBook.write(fos); 
          fos.close(); 
          }
           catch (IOException e) 
          // TODO Auto-generated catch block 
          //System.out.println("寫錯誤。。。"); 
          succFlag = -1
          log.error(
          "報表寫錯誤:"+e.getMessage()); 
          //e.printStackTrace(); 
          posted on 2008-11-25 10:17 rogerfan 閱讀(1226) 評論(1)  編輯  收藏 所屬分類: 【Java知識】

          Feedback

          # re: 【轉(zhuǎn)】poi操作excel-中文與單元格樣式的方法 2013-01-23 10:03 poi3.8
          樓主,你只玩了一個樣式,沒有試過多樣式多字體,不知道那有多惡心。。。  回復(fù)  更多評論
            

          主站蜘蛛池模板: 津南区| 秦安县| 玉田县| 曲水县| 郁南县| 镶黄旗| 包头市| 崇左市| 扬中市| 麻江县| 岑巩县| 恭城| 当涂县| 奉贤区| 徐汇区| 霍林郭勒市| 陈巴尔虎旗| 涿鹿县| 荔波县| 蒙城县| 南投市| 咸丰县| 南充市| 芜湖县| 林芝县| 平和县| 靖边县| 临海市| 饶平县| 石河子市| 长沙市| 静宁县| 南汇区| 德安县| 陇川县| 都江堰市| 西丰县| 多伦县| 岢岚县| 馆陶县| 宜兰县|