JAVA 는 POI 를 이용 하여 엑셀 에 그림 을 그립 니 다.

package cn.chn.chen.tacticmap.action;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFSimpleShape;
import org.apache.poi.hssf.usermodel.HSSFTextbox;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;

import cn.chn.chen.base.action.BaseAction;

/**
 * <p>
 * PoiiAction     -java  Poi excel   .
 * </p>
 * <p>
 *      2010-6-21 -   08:27:29
 * </p>
 * <p>
 * copyright cd**** 2010-2011, all rights reserved.
 * </p>
 * 
 * @author IT  
 * @since 1.0
 * @version 1.0
 */
public class PoiiAction extends BaseAction {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;	

	/**
	 * <p>
	 * excel  -Poi excel   .
	 * </p>
	 * <p>
	 *     IT        2010-6-21 -   08:26:17
	 * </p>
	 * @return
	 * @throws IOException
	 */
	public String excel() throws IOException {
		String savePath = "**.xls";
		OutputStream os = new FileOutputStream(savePath);
		//       
        HSSFWorkbook workbook = new HSSFWorkbook();
        //      
        HSSFSheet sheet = workbook.createSheet("java excel   ");
        //      
        HSSFCellStyle style = workbook.createCellStyle();
        //      
        style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        style.setBorderRight(HSSFCellStyle.BORDER_THIN);
        style.setBorderTop(HSSFCellStyle.BORDER_THIN);
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //      
        HSSFFont font=workbook.createFont();
        font.setColor(HSSFColor.VIOLET.index);
        font.setFontHeightInPoints((short)16);
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        //           
        style.setFont(font);
        //            
        HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
		/**
		 * dx1:      x   ,     255         A1        ;
		 * dy1:      y   ,     125         A1        ;
		 * dx2:      x   ,     1023         C3        ;
		 * dy2:      y   ,     150         C3        ;
		 * colFrom:        , 0    ;
		 * rowFrom:        , 0    ,    col1=0,row1=0         A1;
		 * colTo:        , 0    ;
		 * rowTo:        , 0    ,    col2=2,row2=2         C3;
		 */
        // default
		int dx1 = 0, dy1 = 0, dx2 = 1023, dy2 = 255;
		int colFrom = 0, rowFrom = 0, colTo = 5, rowTo = 5;
		
		HSSFClientAnchor bigValueAnchorShape = new HSSFClientAnchor(dx1, dy1, dx2, dy2, (short)(colFrom), rowFrom, (short)(colTo), rowTo);
		HSSFSimpleShape bigValueShape = patriarch.createSimpleShape(bigValueAnchorShape);
		bigValueShape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL);//     HSSFSimpleShape.OBJECT_TYPE_LINE  
		bigValueShape.setFillColor(180, 200, 160);
		HSSFClientAnchor bigValueAnchorTextBox = new HSSFClientAnchor(dx1, dy1, dx2, dy2, (short)(colFrom+1), rowFrom+1, (short)(colTo-1), rowTo-1);
		HSSFTextbox bigValueTextbox = patriarch.createTextbox(bigValueAnchorTextBox);
		bigValueTextbox.setString(new HSSFRichTextString("          "));
		bigValueTextbox.setLineStyle(HSSFSimpleShape.LINESTYLE_NONE);
		bigValueTextbox.setFillColor(180, 205, 160);
		
		workbook.write(os);
		os.close();

		return "excel";
	}
	
//	//      ,              
//    private static void insertImage(HSSFWorkbook wb,HSSFPatriarch pa,byte[] data,int row,int column,int index){
//        int x1=index*250;
//        int y1=0;
//        int x2=x1+255;
//        int y2=255;
//        HSSFClientAnchor anchor = new HSSFClientAnchor(x1,y1,x2,y2,(short)column,row,(short)column,row);
//        anchor.setAnchorType(2);
//        pa.createPicture(anchor , wb.addPicture(data,HSSFWorkbook.PICTURE_TYPE_JPEG));
//    }
//    //           
//    private static  byte[] getImageData(BufferedImage bi){
//        try{
//            ByteArrayOutputStream bout=new ByteArrayOutputStream();
//            ImageIO.write(bi,"PNG",bout);
//            return bout.toByteArray();
//        }catch(Exception exe){
//            exe.printStackTrace();
//            return null;
//        }
//    }
}

좋은 웹페이지 즐겨찾기