Johnny

          表面的激烈是由于內心的單薄,真正的力量如同流水一般沉靜
          隨筆 - 1, 文章 - 5, 評論 - 0, 引用 - 0
          數據加載中……

          POI Excel小工具類

            1 package poi.excel;
            2 
            3 import java.awt.Graphics;
            4 import java.awt.Image;
            5 import java.awt.image.BufferedImage;
            6 import java.io.ByteArrayOutputStream;
            7 import java.io.FileInputStream;
            8 import java.io.IOException;
            9 import javax.imageio.ImageIO;
           10 import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
           11 import org.apache.poi.hssf.usermodel.HSSFPatriarch;
           12 import org.apache.poi.hssf.usermodel.HSSFPicture;
           13 import org.apache.poi.hssf.usermodel.HSSFSheet;
           14 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
           15 
           16 /**
           17  * poi HSSF 提取點方法
           18  * @author sikaijian
           19  */
           20 public class Excel03Util {
           21     /**
           22      * 畫圖片
           23      * @param sheet
           24      * @param wb
           25      * @param startCol
           26      * @param startRow
           27      * @param endCol
           28      * @param endRow
           29      * @param pictureIndex 圖片索引號 需要先在workbook中加入圖片資源
           30      * @throws IOException
           31      * @author sikaijian
           32      */
           33     public static void drawPicture(HSSFSheet sheet, HSSFWorkbook wb,
           34             short startCol, int startRow, short endCol, int endRow,
           35             int pictureIndex) throws IOException {
           36         // 圖片容器
           37         HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
           38         
           39         // 錨點 容器下錨位置
           40         HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 255, startCol,
           41                 startRow, endCol, endRow);
           42         anchor.setAnchorType(2);
           43         
           44         // 容器下錨,并載入圖片
           45         HSSFPicture picture = patriarch.createPicture(anchor, pictureIndex);
           46 
           47         picture.resize();
           48         picture.setLineStyle(picture.LINESTYLE_DASHDOTGEL);
           49     }
           50 
           51     /**
           52      * 加載圖片
           53      * @param img 圖片對象
           54      * @param wb
           55      * @return 圖片索引號
           56      * @throws IOException
           57      * @author sikaijian
           58      */
           59     public static int loadPicture(Image img, HSSFWorkbook wb)
           60             throws IOException {
           61         int pictureIndex;
           62         ByteArrayOutputStream arrayOut = null;
           63         try {
           64             arrayOut = new ByteArrayOutputStream();
           65             BufferedImage buImage = new BufferedImage(img.getWidth(null), img
           66                     .getHeight(null), BufferedImage.TYPE_INT_RGB);
           67             Graphics g = buImage.getGraphics();
           68             g.drawImage(img, 0, 0, null);
           69             ImageIO.write(buImage, "png", arrayOut);
           70 
           71             byte[] data = arrayOut.toByteArray();
           72 
           73             pictureIndex = wb.addPicture(data, HSSFWorkbook.PICTURE_TYPE_PNG);
           74         } finally {
           75             if (null != arrayOut) {
           76                 arrayOut.close();
           77             }
           78         }
           79 
           80         return pictureIndex;
           81     }
           82 
           83     /**
           84      * 加載圖片
           85      * @param path 圖片路徑
           86      * @param wb
           87      * @return 圖片索引號
           88      * @throws IOException
           89      */
           90     public static int loadPicture(String path, HSSFWorkbook wb)
           91             throws IOException {
           92         int pictureIndex;
           93         FileInputStream fis = null;
           94         ByteArrayOutputStream bos = null;
           95         try {
           96             fis = new FileInputStream(path);
           97             bos = new ByteArrayOutputStream();
           98             int c;
           99             while ((c = fis.read()) != -1)
          100                 bos.write(c);
          101             pictureIndex = wb.addPicture(bos.toByteArray(),
          102                     HSSFWorkbook.PICTURE_TYPE_PNG);
          103         } finally {
          104             if (fis != null)
          105                 fis.close();
          106             if (bos != null)
          107                 bos.close();
          108         }
          109         return pictureIndex;
          110     }
          111 }
          112 

          posted on 2012-10-21 17:43 瓢菝的雨夜 閱讀(731) 評論(0)  編輯  收藏 所屬分類: 代碼歸檔


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 黄大仙区| 通州市| 江山市| 乌什县| 香港 | 祥云县| 涡阳县| 合作市| 耒阳市| 车险| 阳谷县| 松潘县| 平凉市| 建平县| 东乡族自治县| 湘潭县| 荣昌县| 舟曲县| 台北市| 乌鲁木齐市| 苏尼特右旗| 东阿县| 界首市| 奈曼旗| 屯留县| 洛川县| 永州市| 鄂托克旗| 固阳县| 昂仁县| 潜江市| 河曲县| 临沧市| 云和县| 富宁县| 呼伦贝尔市| 神农架林区| 伊金霍洛旗| 虞城县| 来宾市| 石河子市|