文档章节

使用POI向Excel中插入多張图片

顺其自然001
 顺其自然001
发布于 2014/03/04 14:22
字数 265
阅读 27
收藏 0
POI3.0以上版本才支持向Excel中插入图片

http://apache.freelamp.com/jakarta/poi/release/src/poi-src-3.0-FINAL-20070503.zip

http://apache.freelamp.com/jakarta/poi/release/bin/poi-bin-3.0-FINAL-20070503.zip

新版的API可能支持的內容更豐富,不過文件也越來越大了.


package com.emis.test;

import java.io.FileOutputStream;
import java.io.File;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

import java.awt.image.BufferedImage;
import javax.imageio.*;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;

public class test {

    public static void main(String[] args) {
            FileOutputStream fileOut = null;
            BufferedImage bufferImg =null;
            BufferedImage bufferImg1 = null;
            try{

          //先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
          ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
          ByteArrayOutputStream byteArrayOut1 = new ByteArrayOutputStream();
          bufferImg = ImageIO.read(new File("D:\\wwwroot\\smepos3.0\\images\\link01.jpg"));
          bufferImg1 = ImageIO.read(new File("D:\\wwwroot\\smepos3.0\\images\\link02.jpg"));
          ImageIO.write(bufferImg,"jpg",byteArrayOut);
          ImageIO.write(bufferImg1,"jpg",byteArrayOut1);

        //创建一个工作薄
       HSSFWorkbook wb = new HSSFWorkbook();
       HSSFSheet sheet1 = wb.createSheet("new sheet");
       //HSSFRow row = sheet1.createRow(2);
       HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
       HSSFClientAnchor anchor = new HSSFClientAnchor(0,0,100,50,(short) 1,1,(short)10,20);
       HSSFClientAnchor anchor1 = new HSSFClientAnchor(0,0,100,50,(short) 2,30,(short)10,60);
       anchor1.setAnchorType(2);
       //插入图片
       patriarch.createPicture(anchor , wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
       patriarch.createPicture(anchor1 , wb.addPicture(byteArrayOut1.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));

           fileOut = new FileOutputStream("d:/workbook.xls");
           //写入excel文件
           wb.write(fileOut);
           fileOut.close();

            }catch(IOException io){
                    io.printStackTrace();
                    System.out.println("io erorr : "+ io.getMessage());
            } finally
            {
               if (fileOut != null)
               {

                   try {
                              fileOut.close();
                         }
                   catch (IOException e)
                   {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                     }
               }
            }
    }
}

© 著作权归作者所有

顺其自然001

顺其自然001

粉丝 18
博文 37
码字总数 13528
作品 0
卢湾
高级程序员
私信 提问
Java POI 解析Excel中图片的问题

最近在用POI搞导入excel中的图片时,遇到一个问题。excel插入图片一般有2种做法:1.插入-图片 2.直接拷贝,即ctrl+c。对于2种做法,同一效果就是,excel中有图片了。但是,POI在解析时会出现...

Serice丶C
2016/07/29
759
2
使用POI操作Excel的几点注意事项

首先说说现在我所知道的Java编辑Excel文件的两大开源工具: jakarta POI和JavaExcel API(简称JXL),这两套工具我都试用了一这段时间,感觉各有优劣吧。POI在某些细节有些小Bug并且不支持写...

红薯
2008/12/05
2.7K
2
poi插入图片

做Web开发免不了要与Excel打交道。今天老大给我一个任务-导出Excel。开 始想的还是蛮简单的,无非就是查找,构建Excel,response下载即可。但是有一点不同,就是要加入图片,就是这个加入图片...

李永china
2016/07/29
50
0
JAVA使用POI操作excel

一直想写一个poi的使用的总结,话说我第一份正式工作接到的第一个工作就是当时TL让我去整理项目的数据字典,即把内容插入到CSV上,然后把csv的内容插入到数据库中,而且我印象极深的当时使用...

王小明123
2013/01/09
20.9K
12
Java工具类--使用模板方法导出Excel

之前使用poi导出excel,每次都是使用API去一步步画出excel的样式,这种方法在遇到复杂的excel需求时,会浪费很多时间。后来决定尝试使用模板的方法进行导出,这样只需要关心要导出的数据即可...

晓叹星沉
2016/06/07
6.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
42
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部