代码如下:
- package test;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
- import org.apache.poi.hssf.usermodel.HSSFPatriarch;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- public class PicExcelTest {
- public static void main(String[] args) throws IOException {
- FileOutputStream out = new FileOutputStream("D:/workbook.xls");
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet1 = wb.createSheet("picture");
- HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();;
- HSSFClientAnchor anchor1 = new HSSFClientAnchor(0,0,0,0,(short)0,0,(short)8,20);
- HSSFClientAnchor anchor2 = new HSSFClientAnchor(0,0,0,0,(short)0,24,(short)8,44);
- patriarch.createPicture(anchor1, wb.addPicture(loadImage("D:/Sunset.jpg"),HSSFWorkbook.PICTURE_TYPE_JPEG));
- patriarch.createPicture(anchor2, wb.addPicture(loadImage("D:/Water lilies.jpg"),HSSFWorkbook.PICTURE_TYPE_JPEG));
- wb.write(out);
- out.close();
- }
- public static byte[] loadImage(String filePath) {
- try {
- FileInputStream input = new FileInputStream(new File(filePath));
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- byte buf[] = new byte[1024];
- for (;;) {
- int noBytesRead = input.read(buf);
- if (noBytesRead == -1) {
- return output.toByteArray();
- }
- output.write(buf, 0, noBytesRead);
- }
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- }