POI导出图片到EXCEL

1.Apache POI简介

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。 .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 POI 的功能。

2.POI结构

HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
HWPF - 提供读写Microsoft Word DOC格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读Microsoft Visio格式档案的功能。
HPBF - 提供读Microsoft Publisher格式档案的功能。
HSMF - 提供读Microsoft Outlook格式档案的功能。

3.参考实例

import java.io.FileOutputStream;

import java.io.File;

import java.io.ByteArrayOutputStream;

import java.io.IOException;


import java.awt.image.BufferedImage;

import javax.imageio.*;


import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFPatriarch;

import org.apache.poi.hssf.usermodel.HSSFClientAnchor;


public class exportPicToExcel {


public static void main(String[] args) {

FileOutputStream fileOut = null;

BufferedImage bufferImg = null;

BufferedImage bufferImg2 = null;

try {

bufferImg = ImageIO.read(new File("C:/ztest/pic.jpg"));

bufferImg2 = ImageIO.read(new File("C:/ztest/pic2.jpg"));


// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray

ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();

ByteArrayOutputStream byteArrayOut2 = new ByteArrayOutputStream();

ImageIO.write(bufferImg, "jpg", byteArrayOut);

ImageIO.write(bufferImg2, "jpg", byteArrayOut2);


// 创建一个工作薄

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet1 = wb.createSheet("poi picT");

HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();

HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 50, 25,

(short) 3, 3, (short) 4, 4);

HSSFClientAnchor anchor2 = new HSSFClientAnchor(0, 0, 50, 25,

(short) 5, 5, (short) 6, 6);

anchor2.setAnchorType(2);


// 插入图片

patriarch.createPicture(anchor, wb.addPicture(byteArrayOut

.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));

patriarch.createPicture(anchor2, wb.addPicture(byteArrayOut2

.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));


// 写入excel文件

fileOut = new FileOutputStream("c:/ztest/test.xls");

wb.write(fileOut);

fileOut.close();

} catch (IOException io) {

io.printStackTrace();

System.out.println("io erorr : " + io.getMessage());

} finally {

if (fileOut != null) {

try {

fileOut.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

}


// poi-bin-3.10-FINAL-20140208.zip

// 关于POI的更多参考:

// http://www.cnblogs.com/xwdreamer/archive/2011/07/20/2296975.html

// http://langhua9527.iteye.com/blog/388005


你可能感兴趣的:(poi,Excel,导出图片)