<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 5,  comments - 7,  trackbacks - 0

    POI里面處理圖形或者圖片的主要類是HSSFPatriarch,它負責管理一個表格里面所有的圖片和圖形,并且只能創(chuàng)建一個,如果你應(yīng)用程序后來又創(chuàng)建了一個,那么將使以前創(chuàng)造的HSSFPatriarch所管理的圖片和圖形清除,所以一定要保留HSSFPatriarch的引用直到最后.

    這些圖片和單元格不同如果想取單元格上對應(yīng)的圖片咱么辦,比如數(shù)據(jù)轉(zhuǎn)移的時候遇到這樣的問題

      1package com.org.util;
      2
      3import java.awt.image.BufferedImage;
      4import java.io.ByteArrayOutputStream;
      5import java.io.FileOutputStream;
      6import java.net.URL;
      7import javax.imageio.ImageIO;
      8import org.apache.poi.hssf.usermodel.HSSFCell;
      9import org.apache.poi.hssf.usermodel.HSSFCellStyle;
     10import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
     11import org.apache.poi.hssf.usermodel.HSSFFont;
     12import org.apache.poi.hssf.usermodel.HSSFPatriarch;
     13import org.apache.poi.hssf.usermodel.HSSFRichTextString;
     14import org.apache.poi.hssf.usermodel.HSSFRow;
     15import org.apache.poi.hssf.usermodel.HSSFSheet;
     16import org.apache.poi.hssf.usermodel.HSSFSimpleShape;
     17import org.apache.poi.hssf.usermodel.HSSFWorkbook;
     18import org.apache.poi.hssf.util.HSSFColor;
     19
     20public class ExeclPicture{
     21    
     22
     23    public ExeclPicture() {
     24     }

     25    public static void main(String[] args)throws Exception {
     26        //創(chuàng)建一個工作薄
     27         HSSFWorkbook wb=new HSSFWorkbook();
     28        //創(chuàng)建一個表格
     29         HSSFSheet sheet=wb.createSheet("sheet1");
     30        //創(chuàng)建一個列
     31         HSSFRow row=sheet.createRow(0);
     32        //創(chuàng)建一個樣式
     33         HSSFCellStyle style=wb.createCellStyle();
     34        //設(shè)置這些樣式
     35         style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
     36         style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
     37         style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
     38         style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
     39         style.setBorderRight(HSSFCellStyle.BORDER_THIN);
     40         style.setBorderTop(HSSFCellStyle.BORDER_THIN);
     41         style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
     42        //創(chuàng)建一個字體
     43         HSSFFont font=wb.createFont();
     44         font.setColor(HSSFColor.VIOLET.index);
     45         font.setFontHeightInPoints((short)16);
     46         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
     47        //把字體應(yīng)用到當前的樣式
     48         style.setFont(font);
     49        //聲明一個畫圖的頂級管理器
     50         HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
     51        //填充單元格
     52        for(int i=0;i<5;i++){
     53            //創(chuàng)建一個單元格
     54             HSSFCell cell=row.createCell(i);
     55            switch(i){
     56                case 0:
     57                    //設(shè)置普通文本
     58                     cell.setCellValue(new HSSFRichTextString("普通文本"));
     59                    break;
     60                case 1:
     61                    //設(shè)置為形狀
     62                     HSSFClientAnchor a1 = new HSSFClientAnchor( 001023255, (short10, (short10 );
     63                     HSSFSimpleShape shape1 = patriarch.createSimpleShape(a1);
     64                    //這里可以設(shè)置形狀的樣式
     65                     shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL);
     66                    
     67                    break;
     68                case 2:
     69                    //設(shè)置為布爾量
     70                     cell.setCellValue(true);
     71                    break;
     72                case 3:
     73                    //設(shè)置為double值
     74                     cell.setCellValue(12.5);
     75                    break;
     76                case 4:
     77                    //設(shè)置為圖片]
     78                     URL url=this.class.getResource("hello.jpg");
     79                     insertImage(wb,patriarch,getImageData(ImageIO.read(url)),0,4,1);
     80                    break;
     81                    
     82             }

     83            
     84            //設(shè)置單元格的樣式
     85             cell.setCellStyle(style);
     86         }

     87         FileOutputStream fout=new FileOutputStream("我的第一個EXCEL.xls");
     88        //輸出到文件
     89         wb.write(fout);
     90         fout.close();
     91     }

     92    //自定義的方法,插入某個圖片到指定索引的位置
     93    private static void insertImage(HSSFWorkbook wb,HSSFPatriarch pa,byte[] data,int row,int column,int index){
     94        int x1=index*250;
     95        int y1=0;
     96        int x2=x1+255;
     97        int y2=255;
     98         HSSFClientAnchor anchor = new HSSFClientAnchor(x1,y1,x2,y2,(short)column,row,(short)column,row);
     99         anchor.setAnchorType(2);
    100         pa.createPicture(anchor , wb.addPicture(data,HSSFWorkbook.PICTURE_TYPE_JPEG));
    101     }

    102    //從圖片里面得到字節(jié)數(shù)組
    103    private static  byte[] getImageData(BufferedImage bi){
    104        try{
    105             ByteArrayOutputStream bout=new ByteArrayOutputStream();
    106             ImageIO.write(bi,"PNG",bout);
    107            return bout.toByteArray();
    108         }
    catch(Exception exe){
    109             exe.printStackTrace();
    110            return null;
    111         }

    112     }

    113}

    114




    利用createPicture() 在patriarch上創(chuàng)建.支持 PNG ,JPG ,DIB
    一旦為某個wb的sheet創(chuàng)建了patriarch那么所有原有圖片將取消,
    通過HSSFPatriarch類createPicture方法的在指定的wb中的sheet創(chuàng)建圖片,它接受二個參數(shù),第一個是HSSFClientAnchor,設(shè)定圖片的大小。

     1package com.poi.hssf.test;
     2
     3import java.io.FileOutputStream;
     4import java.io.File;
     5import java.io.ByteArrayOutputStream;
     6import java.io.IOException;
     7
     8import java.awt.image.BufferedImage;
     9import javax.imageio.*;
    10
    11import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    12import org.apache.poi.hssf.usermodel.HSSFSheet;
    13import org.apache.poi.hssf.usermodel.HSSFPatriarch;
    14import org.apache.poi.hssf.usermodel.HSSFClientAnchor;;
    15
    16public class TestPOI 
    17
    18    public static void main(String[] args) 
    19            FileOutputStream fileOut = null
    20            BufferedImage bufferImg =null
    21            BufferedImage bufferImg1 = null
    22            try
    23               
    24          //先把讀進來的圖片放到一個ByteArrayOutputStream中,以便產(chǎn)生ByteArray 
    25          ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); 
    26          ByteArrayOutputStream byteArrayOut1 = new ByteArrayOutputStream(); 
    27          bufferImg = ImageIO.read(new File("d:/PieChart.jpg")); 
    28          bufferImg1 = ImageIO.read(new File("d:/fruitBarChart.jpg")); 
    29          ImageIO.write(bufferImg,"jpg",byteArrayOut); 
    30          ImageIO.write(bufferImg1,"jpg",byteArrayOut1); 
    31         
    32        //創(chuàng)建一個工作薄 
    33       HSSFWorkbook wb = new HSSFWorkbook(); 
    34       HSSFSheet sheet1 = wb.createSheet("new sheet"); 
    35       //HSSFRow row = sheet1.createRow(2); 
    36       HSSFPatriarch patriarch = sheet1.createDrawingPatriarch(); 
    37       HSSFClientAnchor anchor = new HSSFClientAnchor(0,0,512,255,(short1,1,(short)10,20); 
    38       HSSFClientAnchor anchor1 = new HSSFClientAnchor(0,0,512,255,(short2,30,(short)10,60); 
    39       anchor1.setAnchorType(2);
    40       //插入圖片
    41       patriarch.createPicture(anchor , wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG)); 
    42       patriarch.createPicture(anchor1 , wb.addPicture(byteArrayOut1.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG)); 
    43       
    44           fileOut = new FileOutputStream("d:/workbook.xls"); 
    45           //寫入excel文件
    46           wb.write(fileOut); 
    47           fileOut.close(); 
    48       
    49            }
    catch(IOException io)
    50                    io.printStackTrace(); 
    51                    System.out.println("io erorr : "+ io.getMessage()); 
    52            }
     finally 
    53            
    54               if (fileOut != null
    55               {
    56                          
    57                   try 
    58                              fileOut.close(); 
    59                         }
     
    60                   catch (IOException e)
    61                   
    62                            // TODO Auto-generated catch block 
    63                            e.printStackTrace(); 
    64                     }
     
    65               }
     
    66            }

    67    }

    68}

    69


    posted on 2008-11-25 10:52 Vincent-chen 閱讀(8597) 評論(2)  編輯  收藏 所屬分類: POIPrint
    主站蜘蛛池模板: 亚洲AV中文无码字幕色三| 五月天婷亚洲天综合网精品偷| 国产亚洲精品a在线观看app| 久久性生大片免费观看性| 国产亚洲成归v人片在线观看| v片免费在线观看| 国产L精品国产亚洲区久久| 二个人看的www免费视频| 亚洲一区二区三区无码影院| 四虎国产精品永免费| 亚洲人精品午夜射精日韩| 国产免费一区二区三区不卡| 亚洲精品私拍国产福利在线| 国产妇乱子伦视频免费| 亚洲 日韩 色 图网站| 国产一级淫片a免费播放口之| 美女视频黄视大全视频免费的| 亚洲国产成人久久综合野外| aa在线免费观看| 久久精品国产亚洲AV香蕉| 亚洲人成网站免费播放| 国产成人综合亚洲| 亚洲大尺度无码无码专区| 久久久久久精品成人免费图片 | 成人啪精品视频免费网站| 亚洲乱码av中文一区二区| 国产亚洲精品精品国产亚洲综合 | 一区二区三区免费高清视频| 无码久久精品国产亚洲Av影片| 99久久99这里只有免费费精品| 亚洲成av人片在线天堂无| 亚洲人成伊人成综合网久久久| 无码国产精品一区二区免费式影视| 国产精品国产亚洲区艳妇糸列短篇| 伊人久久大香线蕉亚洲五月天| 最近免费中文字幕mv在线电影| 亚洲欧美日韩一区二区三区在线| 亚洲无av在线中文字幕| 精品久久久久成人码免费动漫| 成人a毛片视频免费看| 亚洲精品亚洲人成在线麻豆|