在项目中有时候会遇到往数据库中导数据的时候,每每须要把图片也一块儿导入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
若有不当之处,请指出,咱们一块儿交流学习,共同进步!谢谢!图片