在項目中有時候會遇到往數據庫中導數據的時候,每每須要把圖片也一塊兒導入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
若有不當之處,請指出,咱們一塊兒交流學習,共同進步!謝謝!圖片