一个POI Excel的小例子【转】

原文出自:http://www.iteye.com/problems/13427
  1package *.*;   
  2  
  3import java.io.FileOutputStream;
  4import java.util.ArrayList;   
  5import java.util.Iterator;   
  6  
  7import org.apache.poi.hssf.usermodel.HSSFCell;   
  8import org.apache.poi.hssf.usermodel.HSSFCellStyle;   
  9import org.apache.poi.hssf.usermodel.HSSFFont;   
 10import org.apache.poi.hssf.usermodel.HSSFRow;   
 11import org.apache.poi.hssf.usermodel.HSSFSheet;   
 12import org.apache.poi.hssf.usermodel.HSSFWorkbook;   
 13  
 14public class FontCellStyle {   
 15private static HSSFFont fontStyle = null;   
 16private static HSSFCellStyle cellStyle = null;   
 17  
 18/*设置字体格式*/  
 19public static HSSFFont getHdrFont(HSSFWorkbook wb) {   
 20fontStyle = wb.createFont();   
 21fontStyle.setFontName("宋体");   
 22fontStyle.setFontHeightInPoints((short)20);   
 23fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   
 24return fontStyle;   
 25}
   
 26public static HSSFFont getFtrFont(HSSFWorkbook wb) {   
 27fontStyle = wb.createFont();   
 28fontStyle.setFontName("宋体");   
 29fontStyle.setFontHeightInPoints((short)12);   
 30fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);   
 31return fontStyle;   
 32}
   
 33public static HSSFFont getContentFont(HSSFWorkbook wb) {   
 34fontStyle = wb.createFont();   
 35fontStyle.setFontName("宋体");   
 36fontStyle.setFontHeightInPoints((short)12);   
 37fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);   
 38return fontStyle;   
 39}
   
 40public static HSSFFont getMergeConflictFont(HSSFWorkbook wb) {   
 41fontStyle = wb.createFont();   
 42fontStyle.setFontName("Arial");   
 43fontStyle.setFontHeightInPoints((short)12);   
 44fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);   
 45fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   
 46return fontStyle;   
 47}
   
 48/*设置Excel单元格格式,引用到字体格式*/  
 49public static HSSFCellStyle getAnyCellStyle(HSSFWorkbook wb,HSSFFont font,short align,short valign,short indent,boolean wrapText) {   
 50cellStyle =wb.createCellStyle();   
 51if(font != null) cellStyle.setFont(font);   
 52if(align > 0) cellStyle.setAlignment(align);   
 53if(valign > 0) cellStyle.setVerticalAlignment(valign);   
 54if(indent > 0) cellStyle.setIndention(indent);   
 55cellStyle.setWrapText(wrapText);   
 56return cellStyle;   
 57}
   
 58  
 59/*设置Excel单元格行高、列宽*/  
 60public static void setDefaultHighWidth(HSSFSheet sheet) {   
 61sheet.setDefaultRowHeightInPoints(10);   
 62sheet.setDefaultColumnWidth((short20);   
 63}
   
 64public static void setDefaultCellHighWidthInRange(HSSFSheet sheet,short[] eachCellWidth,int high) {   
 65//假定第一行和第一行所需的单元个已经建立好了,也就是说,在这之前已经调用了DesignXlsHeaderFooter.setXlsHeader   
 66sheet.setDefaultRowHeightInPoints(high);//设置默认高   
 67/*设置各列单元格宽度*/  
 68for(int i = 0;i < eachCellWidth.length;i++{   
 69//System.out.print(""+i+"\t");   
 70sheet.setColumnWidth((short) i,(short) ((eachCellWidth[i])*256));   
 71}
   
 72//System.out.println();   
 73/*  
 74Iterator arrayItr = eachCellWidth.iterator();  
 75short width;  
 76short pos = 0;  
 77while(arrayItr.hasNext()) {  
 78width = Short.parseShort((String)arrayItr.next());  
 79sheet.setColumnWidth(pos,width);  
 80pos++;  
 81}  
 82*/
  
 83//end_setDefaultCellHighWidthInRange   
 84}
   
 85  
 86 
 87/*调用方式*/  
 88  
 89/*设置整体excel单元格格式*/  
 90  
 91FileOutputStream fos = null;
 92try {   
 93fos = new FileOutputStream(rptRealPathAndName);   
 94}
 catch (FileNotFoundException e) {   
 95// TODO Auto-generated catch block   
 96//System.out.println("创建文件失败。。。");   
 97log.info("In WriteRptByType.writeRptTypeFive(),create file failed!!!");   
 98log.error(e.getMessage());   
 99//e.printStackTrace();   
100return -1;   
101}
   
102HSSFWorkbook workBook = new HSSFWorkbook();   
103HSSFSheet sheet = workBook.createSheet();;   
104workBook.setSheetName(0,"移动",HSSFWorkbook.ENCODING_UTF_16);   
105HSSFCellStyle cellStyleHdr = FontCellStyle.getAnyCellStyle(workBook,FontCellStyle.getHdrFont(workBook),HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_CENTER, (short)-1true);   
106  
107HSSFRow curRow = sheet.createRow(0);   
108HSSFCell curCell= curRow.createCell((short)0);   
109curCell.setEncoding(HSSFCell.ENCODING_UTF_16);   
110curCell.setCellStyle(cellStyleHdr );   
111curCell.setCellValue("可以写入汉字,无乱码");   
112  
113/*.写入文件.*/  
114  
115try {   
116workBook.write(fos);   
117fos.close();   
118}
 catch (IOException e) {   
119// TODO Auto-generated catch block   
120//System.out.println("写错误。。。");   
121succFlag = -1;   
122log.error("报表写错误:"+e.getMessage());   
123//e.printStackTrace();   

posted on 2011-07-12 10:20 何智 阅读(302) 评论(0)  编辑  收藏 所属分类: Java Util


只有注册用户登录后才能发表评论。


网站导航:
 
<2025年1月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

留言簿(1)

文章分类

文章档案

搜索

最新评论