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


 

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

  如何實現?今天我們就來用jxl和poi分別實現一下怎么導入execl表格圖片

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

  由於是測試我把路徑和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();
    }
}

  

執行運行之后效果如下

 

 

只要把參數正確傳入類正確引用,我們就可以順利實現啦。

2.我們再來看用poi怎么實現導入圖片

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();
    }
}

  

運行之后圖片如下所示

 

  我們通過兩種方法實現了把圖片導入到execl表格中,當然這只是簡單實現把圖片導入到execl表格中,里面還有好多可以設置的功能屬性。

 

  如有不當之處,請指出,我們一起交流學習,共同進步!謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM