Excel導入圖片代碼 java

直接上代碼:

public static void main(String[] args) throws Exception {
		FileOutputStream fileOut = null;
		/*
		 * 
		 * 目的:操作圖片 實現:第一步-需要將圖片從磁盤加載到內存中,第二步-java中有Image和BufferedImage這兩種處理圖片的類,
		 * 
		 * 第一種類似copy,不能對 圖片進行操作,而BufferedImage則是將圖片放入內存圖片緩衝區中,可以對圖片進行修改。
		 * 
		 */
		BufferedImage bufferImg = null;
		// 先把讀進來的圖片放到一個ByteArrayOutputStream中,以便產生ByteArray
		try {
			ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
			bufferImg = ImageIO.read(new File("d:/aa/123.jpg"));
			ImageIO.write(bufferImg, "png", byteArrayOut);
			HSSFWorkbook wb = new HSSFWorkbook();
			HSSFSheet sheet1 = wb.createSheet("test picture");
			// 畫圖的頂級管理器,一個sheet只能獲取一個(一定要注意這點)
			HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
			 /**
             * 該構造函數有8個參數
             * 前四個參數是控制圖片在單元格的位置,分別是圖片距離單元格left,top,right,bottom的像素距離
             * 後四個參數,前連個表示圖片左上角所在的cellNum和 rowNum,後天個參數對應的表示圖片右下角所在的cellNum和 rowNum,
             * excel中的cellNum和rowNum的index都是從0開始的
             *  
             */  
			HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, (short) 1, 1, (short) 5, 8);
			// 插入圖片
			patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
			File file = new File("d:/aa/123.xls");
			file.createNewFile();
			fileOut = new FileOutputStream(file);
			// 寫入excel文件
			wb.write(fileOut);
			System.out.println("----Excel文件已生成------");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (fileOut != null) {
				try {
					fileOut.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

希望對你有所幫助!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章