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

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

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

    千里冰封
    JAVA 濃香四溢
    posts - 151,comments - 2801,trackbacks - 0
    昨天,我們看了一下POI操作EXCEL的簡單例子,我們只是插入了一些字符串而已,但是現(xiàn)實的應(yīng)用中,經(jīng)常需要在EXCEL中插入圖片或者圖形.這個時候,應(yīng)該怎么辦呢,我們先看一下下面的例子
    /*
     * Test3.java
     *
     * Created on 2007年9月13日, 上午9:14
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     
    */

    package test1;

    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.FileOutputStream;
    import java.net.URL;
    import javax.imageio.ImageIO;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFPatriarch;
    import org.apache.poi.hssf.usermodel.HSSFRichTextString;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFSimpleShape;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.HSSFColor;

    /**
     *
     * 
    @author hadeslee
     
    */
    public class Test3 {
        
        
    /** Creates a new instance of Test3 */
        
    public Test3() {
        }
        
    public static void main(String[] args)throws Exception {
            
    //聲明一個工作薄
            HSSFWorkbook wb=new HSSFWorkbook();
            
    //生成一個表格
            HSSFSheet sheet=wb.createSheet("表格1");
            
    //生成一個列
            HSSFRow row=sheet.createRow(0);
            
    //生成一個樣式
            HSSFCellStyle style=wb.createCellStyle();
            
    //設(shè)置這些樣式
            style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
            style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
            style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            style.setBorderRight(HSSFCellStyle.BORDER_THIN);
            style.setBorderTop(HSSFCellStyle.BORDER_THIN);
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            
    //生成一個字體
            HSSFFont font=wb.createFont();
            font.setColor(HSSFColor.VIOLET.index);
            font.setFontHeightInPoints((
    short)16);
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            
    //把字體應(yīng)用到當(dāng)前的樣式
            style.setFont(font);
            
    //聲明一個畫圖的頂級管理器
            HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
            
    //填充單元格
            for(short i=0;i<5;i++){
                
    //聲明一個單元格
                HSSFCell cell=row.createCell(i);
                
    switch(i){
                    
    case 0:
                        
    //設(shè)置普通文本
                        cell.setCellValue(new HSSFRichTextString("普通文本"));
                        
    break;
                    
    case 1:
                        
    //設(shè)置為形狀
                        HSSFClientAnchor a1 = new HSSFClientAnchor( 001023255, (short10, (short10 );
                        HSSFSimpleShape shape1 
    = patriarch.createSimpleShape(a1);
                        
    //這里可以設(shè)置形狀的樣式
                        shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL);
                        
                        
    break;
                    
    case 2:
                        
    //設(shè)置為布爾量
                        cell.setCellValue(true);
                        
    break;
                    
    case 3:
                        
    //設(shè)置為double值
                        cell.setCellValue(12.5);
                        
    break;
                    
    case 4:
                        
    //設(shè)置為圖片]
                        URL url=Test3.class.getResource("hello.jpg");
                        insertImage(wb,patriarch,getImageData(ImageIO.read(url)),
    0,4,1);
                        
    break;
                        
                }
                
                
    //設(shè)置單元格的樣式
                cell.setCellStyle(style);
            }
            FileOutputStream fout
    =new FileOutputStream("我的第一個EXCEL.xls");
            
    //輸出到文件
            wb.write(fout);
            fout.close();
        }
        
    //自定義的方法,插入某個圖片到指定索引的位置
        private static void insertImage(HSSFWorkbook wb,HSSFPatriarch pa,byte[] data,int row,int column,int index){
            
    int x1=index*250;
            
    int y1=0;
            
    int x2=x1+255;
            
    int y2=255;
            HSSFClientAnchor anchor 
    = new HSSFClientAnchor(x1,y1,x2,y2,(short)column,row,(short)column,row);
            anchor.setAnchorType(
    2);
            pa.createPicture(anchor , wb.addPicture(data,HSSFWorkbook.PICTURE_TYPE_JPEG));
        }
        
    //從圖片里面得到字節(jié)數(shù)組
        private static  byte[] getImageData(BufferedImage bi){
            
    try{
                ByteArrayOutputStream bout
    =new ByteArrayOutputStream();
                ImageIO.write(bi,
    "PNG",bout);
                
    return bout.toByteArray();
            }
    catch(Exception exe){
                exe.printStackTrace();
                
    return null;
            }
        }
    }

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



    盡管千里冰封
    依然擁有晴空

    你我共同品味JAVA的濃香.
    posted on 2007-09-13 09:49 千里冰封 閱讀(2180) 評論(2)  編輯  收藏 所屬分類: JAVASE

    FeedBack:
    # re: 利用POI操作EXCEL文檔(2)
    2007-09-14 17:53 | 大頭菜
    不錯的文章...  回復(fù)  更多評論
      
    # re: 利用POI操作EXCEL文檔(2)
    2009-12-08 09:32 | 青龍
    怎么樣在原來存在的excel中添加另一sheet呢  回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲一区二区三区91| 亚洲福利视频网站| 国产精品视频免费| 亚洲GV天堂无码男同在线观看| 中文字幕无码播放免费| 亚洲毛片无码专区亚洲乱| 在线视频免费观看爽爽爽| 亚洲国产综合第一精品小说| 久久精品a一国产成人免费网站| 美女一级毛片免费观看| 成人黄软件网18免费下载成人黄18免费视频| 亚洲精品视频免费在线观看| 91久久精品国产免费一区| 亚洲高清视频免费| 51精品视频免费国产专区| 91亚洲va在线天线va天堂va国产 | 亚洲五月综合缴情在线观看| 十八禁的黄污污免费网站| 国产成人精品曰本亚洲79ren| 国产三级在线免费观看| 奇米影视亚洲春色| 华人在线精品免费观看| 亚洲AV无码一区二区三区系列| 欧洲人成在线免费| 亚洲理论精品午夜电影| 色窝窝免费一区二区三区 | 日本免费人成黄页网观看视频| 亚洲综合激情五月丁香六月| 日韩免费高清视频| 污视频网站在线观看免费| 国产成人亚洲精品影院| 大地资源网高清在线观看免费| 久久亚洲精品成人av无码网站| 99精品视频免费| 亚洲精品不卡视频| 国产大片免费网站不卡美女| 亚洲国语精品自产拍在线观看| 久久成人国产精品免费软件| 国产99久久久久久免费看| 久久久久亚洲精品无码蜜桃 | 亚洲精品无码国产|