Home Tutorials Poi Insert Image into Excel Sheet



Insert Image into Excel Sheet
Posted on: August 12, 2011 at 12:00 AM
In this section, you will learn how to insert image into excel sheet using Apache POI.

Insert Image into Excel Sheet

In this section, you will learn how to insert image into excel sheet using Apache POI.

In the given below example, am image is insert into excel sheet at row 1 and at column 1. you can specify the top left corner of the image where image's top left corner will be placed.

Given below the code :

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Picture;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class XLInsertImage {
public static void main(String[] args) throws Exception {
//create a new workbook
Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();

//add picture data to this workbook.
InputStream is = new FileInputStream("xls/PC.png");
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
is.close();

CreationHelper helper = wb.getCreationHelper();

//create sheet
Sheet sheet = wb.createSheet();

// Create the drawing patriarch. This is the top level container for all shapes. 
Drawing drawing = sheet.createDrawingPatriarch();

//add a picture shape
ClientAnchor anchor = helper.createClientAnchor();
//set top-left corner of the picture,
//subsequent call of Picture#resize() will operate relative to it
anchor.setCol1(0);
anchor.setRow1(0);
Picture pict = drawing.createPicture(anchor, pictureIdx);

//auto-size picture relative to its top-left corner
pict.resize();

//save workbook
String file = "xls/picture.xls";
if(wb instanceof XSSFWorkbook) file += "x";
FileOutputStream fileOut = new FileOutputStream(file);
wb.write(fileOut);
fileOut.close();
}
}

OUTPUT

Download Source Code

Related Tags for Insert Image into Excel Sheet:


More Tutorials from this section

Ask Questions?    Discuss: Insert Image into Excel Sheet  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 

Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.