zoukankan      html  css  js  c++  java
  • POI操作Excel常用方法总结 (转)

     以下的链接为原创地址:

    http://blog.csdn.net/huazhangena/article/details/7587731

    http://blog.csdn.net/huazhangena/article/details/7673653

    使用POI创建一个简单的   myXls.xls   文件      

      常用的包为   org.apache.poi.hssf.usermodel.*;  

      例子:      

      import   java.io.*;   import org.apache.poi.hssf.usermodel.*;    

      public   class   ZoomSheet   {               

      public   ZoomSheet()   {    

             }             

        public   static   void   main(String   args[])              throws   IOException   {                    

            HSSFWorkbook   wb   =   new   HSSFWorkbook();          

            HSSFSheet   sheet1   =   wb.createSheet("new   sheet");           

            FileOutputStream   fileOut   =   new   FileOutputStream("workbook.xls");      

            wb.write(fileOut);             

            fileOut.close();         

        }  

      }      

      类:    

    HSSFWorkbook 创建   xls   的对象;

    HSSFWorkbook   hw   =   new   HSSFWorkbook();                 

      设置分区显示; hw.setRepeatingRowsAndColumns(sheet的index,   行,   列,   行,   列);    

    HSSFSheet 创建   xls   中的sheet(工作表);

    HSSFSheet   sheet   =   hw.createSheet("sheet1");     

      sheet1   是   sheet   的名称   可缺省   

    设置列高; sheet.setColumnWidth((short)short,   (short)short);  

      HSSFRow 创建   xls   中的行;

    HSSFRow   row   =   sheet.createRow(0);                             0   表示第一行    设置行高; row.setHeight((short)short);     HSSFFont 创建   xls   中的字体; HSSFFont   font   =   hw.createFont();     设定字体大小; font.setFontHeightInPoints((short)54);     设定为斜体; font.setItalic(true);     设定文字删除线; font.setStrikeout(true);  

      HSSFCellStyle 设定单元格风格;

    HSSFCellStyle   style   =   wb.createCellStyle();    

    加入字体; style.setFont(font);     HSSFCell 设定单元格; HSSFCell   cell   =   row.createCell((short)0); 

    单元格水平对齐方式; style.setAlignment(align);         //单元格水平   0   普通   1   左对齐   2   居中   3   右对齐   4   填充   5   正当   6   居中选择   

    单元格垂直对齐方式; style.setVerticalAlignment(align);       //单元格垂直   0   居上   1   居中   2   居下   3   正当       

    单元格下边框为细线; style.setBorderBottom((short)short);    

    同上一命令一同使用,设置颜色;

    style.setBottomBorderColor((short)short);    

    单元格左边框; style.setBorderLeft((short)short);     style.setLeftBorderColor((short)short);  

      单元格右边框; style.setBorderRight((short)short);     style.setRightBorderColor((short)short);    

    单元格上边框; style.setBorderTop((short)short);     style.setTopBorderColor((short)short);    

    单元格字符编号(中文); cell.setEncoding(HSSFCell.ENCODING_UTF_16);       //中文     单元格显示的值; cell.setCellValue("中医药");    

    值的类型有:double,int,String,Date,boolean  

      单元格背景色; style.setFillForegroundColor((short)short);    

    图案类型; style.setFillPattern((short)short);  

      单元格合并; sheet.addMergedRegion(new   Region(行,   (short)列,   行,   (short)列));            

    单元格风格加入; cell.setCellStyle(style);                              

      打印设置     引入包 import   org.apache.poi.hssf.usermodel.HSSFPrintSetup;    

    创建打印设置对象 HSSFPrintSetup   hps   =   hs.getPrintSetup();    

    设置A4纸 hps.setPaperSize((short)9);        

    将页面设置为横向打印模式 hps.setLandscape(true);          

    设置打印页面为水平居中 sheet.setHorizontallyCenter(true);          

    设置打印页面为垂直居中 sheet.setVerticallyCenter(true);

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    难点总结

    1.设置不显示excel网格线   sheet.setDisplayGridlines(false);其中sheet是Sheet对象

    2.设置excel单元格中的内容换行   cellStyle.setWrapText(true);其中cellStyle是WorkBook创建的CellStyle对象,然后将cellStyle设置到要换行的Cell对象,最后在要换行的对象(一般为字符串)加入"/r/n"。如 topTile.append("/r/n" +"cellContent");
    3.单元格的合并   sheet.addMergedRegion(new CellRangeAddress(0, 4, 0, 2));本示例为合并4行2列
    4.设置页眉和页脚的页数     HSSFHeader header = sheet.getHeader();     header.setCenter("Center Header");     header.setLeft("Left Header");     header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +     HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16");
      HSSFFooter footer = (HSSFFooter )sheet.getFooter()   footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );
    5.使得一个Sheet适合一页   sheet.setAutobreaks(true); 6.设置放大属性(Zoom被明确为一个分数,例如下面的75%使用3作为分子,4作为分母)   sheet.setZoom(3,4);  
    7.设置打印   HSSFPrintSetup print = (HSSFPrintSetup) sheet.getPrintSetup();   print.setLandscape(true);//设置横向打印   print.setScale((short) 70);//设置打印缩放70%   print.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE);//设置为A4纸张   print.setLeftToRight(true);//設置打印顺序先行后列,默认为先列行              print.setFitHeight((short) 10);设置缩放调整为10页高   print.setFitWidth((short) 10);设置缩放调整为宽高
      sheet.setAutobreaks(false);   if (i != 0 && i % 30 == 0)       sheet.setRowBreak(i);//設置每30行分頁打印
    8.反复的行和列(设置打印标题)   HSSFWorkbook wb = new HSSFWorkbook();   wb.setRepeatingRowsAndColumns(0, 0, 12, 1, 6);//设置1到12列,行1到6每一页重复打印
    9.调整单元格宽度   sheet.setAutobreaks(true);   sheet.setColumnWidth((short)i,colsWidth[i]); //设定单元格长度     sheet.autoSizeColumn((short) i);//自动根据长度调整单元格长度

  • 相关阅读:
    changing a pointer rather than erasing memory cells
    验证码识别 edge enhancement 轮廓增强 region finding 区域查找
    Manipulating Data Structures
    passing parameters by value is inefficient when the parameters represent large blocks of data
    Aliasing 走样
    Artificial Intelligence Research Methodologies 人工智能研究方法
    Thread safety
    include pointers as a primitive data type
    flat file
    functional cohesion
  • 原文地址:https://www.cnblogs.com/tiancy/p/5195979.html
Copyright © 2011-2022 走看看