如何輕鬆的把圖片導入execl表格中

 

  在項目中有時候會遇到往數據庫中導數據的時候,每每須要把圖片也一塊兒導入execl表格中,那怎麼才能把圖片一塊導入至execl中呢?那麼今天咱們就來看看怎麼實現吧!java

  如何實現?今天咱們就來用jxl和poi分別實現一下怎麼導入execl表格圖片數據庫

1.首先用jxl實現把圖片導入execlapache

  因爲是測試我把路徑和execl表格名稱直接全都寫死了學習

import jxl.Workbook;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import java.io.File;
import java.io.FileOutputStream;

/**
 * 用jxl導出模板
 * @author pillar
 * @date 2019-05-14
 */
public class testExecl {
    public static void main(String[] args) throws Exception{

        //要導出的圖片地址
        String pictureUrl = "D:"+ File.separator+"pillar"+ File.separator+"pilar.png";
        //模板地址
        String templateXlsFilePath= "D:"+ File.separator+"pillar"+File.separator+"pillarTest.xls";
        //要導出execl的地址
        String exportFilePath = "D:"+ File.separator+"pillar"+File.separator+"pillar.xls";
        //導出execl模板
        FileOutputStream outStream =  new FileOutputStream(exportFilePath);
        // 打開一個文件的副本,而且指定數據寫回到原文件
        Workbook templateWorkbook = Workbook.getWorkbook(new File(templateXlsFilePath));
        WritableWorkbook book = Workbook.createWorkbook(outStream,templateWorkbook);
        // 添加一個工做表
        WritableSheet sheet = book.getSheet(0);
        File file = new File(pictureUrl);
        //設置圖片位置
        WritableImage image=new WritableImage(2, 2, 2, 3,file);
        sheet.addImage(image);

        book.write();
        book.close();
        outStream.flush();
        outStream.close();
    }
}

  

執行運行以後效果以下測試

 

 

只要把參數正確傳入類正確引用,咱們就能夠順利實現啦。spa

2.咱們再來看用poi怎麼實現導入圖片3d

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

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;

/**
 * @author pillar
 * @date 2019-05-14
 */
public class testPoiExecl {
    public static void main(String[] args) throws Exception{

        //將讀取到的圖片放在ByteArrayOutputStream中。。。
        ByteArrayOutputStream byteArrayOutStream = new ByteArrayOutputStream();
        //讀取圖片並寫入byteArrayOutStream
        BufferedImage bufferImg = ImageIO.read(new File("D:\\pillar\\pilar.png"));
        ImageIO.write(bufferImg, "png", byteArrayOutStream);
        //建立一個工做簿
        HSSFWorkbook wb = new HSSFWorkbook();
        //建立一個表格
        HSSFSheet sheet = wb.createSheet();
        //HSSFPatriarch類將圖片寫入execl
        HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
        //設置圖片的位置
        HSSFClientAnchor anchor = new HSSFClientAnchor(10, 10, 1023, 250,(short) 2, 2, (short) 2, 2);

        patriarch.createPicture(anchor, wb.addPicture(byteArrayOutStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
        //要導入的地址路徑
        FileOutputStream  fileOut = new FileOutputStream("D:\\pillar\\pillarTest.xls");
        // 寫入excel文件
        wb.write(fileOut);
        fileOut.close();
    }
}

  

運行以後圖片以下所示excel

 

  咱們經過兩種方法實現了把圖片導入到execl表格中,固然這只是簡單實現把圖片導入到execl表格中,裏面還有好多能夠設置的功能屬性。blog

 

  若有不當之處,請指出,咱們一塊兒交流學習,共同進步!謝謝!圖片

相關文章
相關標籤/搜索