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 瓢菝的雨夜 阅读(719) 评论(0)  编辑  收藏 所属分类: 代码归档


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


网站导航: