<div class="cnblogs_code">
<span style="color: #0000ff;">import<span style="color: #000000;"> javax.imageio.ImageIO;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.apache.poi.hssf.usermodel.HSSFClientAnchor;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.apache.poi.hssf.usermodel.HSSFPatriarch;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.apache.poi.hssf.usermodel.HSSFSheet;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.apache.poi.hssf.usermodel.HSSFWorkbook;
<span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> Picture {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">String filepath = SpringConfigUtil.getValue("filepath");
<span style="color: #008000;">//<span style="color: #008000;">String picturepath = SpringConfigUtil.getValue("picturepath");
<span style="color: #008000;">//<span style="color: #008000;">int rowNum = Integer.parseInt(SpringConfigUtil.getValue("rowNum"));
<span style="color: #008000;">//<span style="color: #008000;"> int cellNum = Integer.parseInt(SpringConfigUtil.getValue("cellNum"));
<span style="color: #0000ff;">boolean result = insertPicture("E:datafile2015092015.xls","E:datafile201509test.jpg",3,5);<span style="color: #008000;">//<span style="color: #008000;"> 1代表插入的行数-1
<span style="color: #008000;">//<span style="color: #008000;"> ,2代表插入的列数-1
<span style="color: #000000;">
System.out.println("图片插入结果为==" +<span style="color: #000000;"> result);
}
</span><span style="color: #008000;">/*</span><span style="color: #008000;"> 插入图片地址 文件地址 插入图片位置的关键字 图片类型 </span><span style="color: #008000;">*/</span>
<span style="color: #008000;">/**</span><span style="color: #008000;">
* </span><span style="color: #808080;">@param</span><span style="color: #008000;"> filePath
* </span><span style="color: #808080;">@param</span><span style="color: #008000;"> picturePath
* </span><span style="color: #808080;">@param</span><span style="color: #008000;"> rowNum
* </span><span style="color: #808080;">@param</span><span style="color: #008000;"> cellNum
* </span><span style="color: #808080;">@return</span>
<span style="color: #008000;">*/</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">boolean</span> insertPicture(String filePath,String picturePath,<span style="color: #0000ff;">int</span> rowNum,<span style="color: #0000ff;">int</span><span style="color: #000000;"> cellNum) {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 初始化IO流内容</span>
<span style="color: #000000;">
FileOutputStream fileOut = <span style="color: #0000ff;">null<span style="color: #000000;">;
BufferedImage bufferImg = <span style="color: #0000ff;">null<span style="color: #000000;">;
<span style="color: #0000ff;">int rowN = rowNum;<span style="color: #008000;">//<span style="color: #008000;"> 图片插入行的初始化
<span style="color: #0000ff;">int cellN = cellNum;<span style="color: #008000;">//<span style="color: #008000;"> 图片插入列的初始化
<span style="color: #0000ff;">try<span style="color: #000000;"> {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray</span>
ByteArrayOutputStream byteArrayOut = <span style="color: #0000ff;">new</span><span style="color: #000000;"> ByteArrayOutputStream();
bufferImg </span>= ImageIO.read(<span style="color: #0000ff;">new</span> File(picturePath));<span style="color: #008000;">//</span><span style="color: #008000;"> 图片地址</span>
<span style="color: #000000;">
ImageIO.write(bufferImg,"png"<span style="color: #000000;">,byteArrayOut);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 创建一个工作薄</span>
HSSFWorkbook wb = <span style="color: #0000ff;">new</span> HSSFWorkbook(<span style="color: #0000ff;">new</span><span style="color: #000000;"> FileInputStream(filePath));
HSSFSheet sheet1 </span>= wb.getSheetAt(0<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 创建插入图片需要的容器</span>
HSSFPatriarch patriarch =<span style="color: #000000;"> sheet1.createDrawingPatriarch();
</span><span style="color: #008000;">/*</span><span style="color: #008000;">
* HSSFClientAnchor几个数字解释:3:是x轴的开始节点, 0:
* 是y轴的开始节点,1023:是x轴的结束节点,255:是y轴的结束节点
* ,1:是从Excel的2列开始插入图片,10:是从excel的第11行开始插入图片,
* 11:图片占用11列的位置,25:图片结束在excel的26行
</span><span style="color: #008000;">*/</span><span style="color: #000000;">
HSSFClientAnchor anchor </span>= <span style="color: #0000ff;">new</span> HSSFClientAnchor(0,1023,255,(<span style="color: #0000ff;">short</span>) ((<span style="color: #0000ff;">short</span><span style="color: #000000;">) cellN),(rowN),(</span><span style="color: #0000ff;">short</span>) ((<span style="color: #0000ff;">short</span>) cellN + 1<span style="color: #000000;">),(rowN));
anchor.setAnchorType(</span>2<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 插入图片</span>
<span style="color: #000000;">
patriarch.createPicture(anchor,wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
fileOut </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> FileOutputStream(filePath);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 写入excel文件</span>
<span style="color: #000000;"> wb.write(fileOut);
fileOut.close();
<span style="color: #0000ff;">return <span style="color: #0000ff;">true<span style="color: #000000;">;
} <span style="color: #0000ff;">catch<span style="color: #000000;"> (IOException io) {
io.printStackTrace();
System.out.println(</span>"io erorr : " +<span style="color: #000000;"> io.getMessage());
</span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;
} </span><span style="color: #0000ff;">finally</span><span style="color: #000000;"> {
</span><span style="color: #0000ff;">if</span> (fileOut != <span style="color: #0000ff;">null</span><span style="color: #000000;">) {
</span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {
fileOut.close();
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
e.printStackTrace();
}
}
}
}
}
参数读取:
<span style="color: #0000ff;">import<span style="color: #000000;"> org.springframework.core.io.ClassPathResource;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.springframework.core.io.Resource;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.springframework.core.io.support.PropertiesLoaderUtils;
<span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> SpringConfigUtil {
</span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">static</span> Properties spring_props = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Properties();
</span><span style="color: #0000ff;">static</span><span style="color: #000000;"> {
</span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {
Resource resource </span>= <span style="color: #0000ff;">new</span> ClassPathResource("/META-INF/config/app-config.properties"<span style="color: #000000;">);
spring_props </span>=<span style="color: #000000;"> PropertiesLoaderUtils.loadProperties(resource);
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception e) {
e.printStackTrace();
}
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> String getValue(String key) {
String value </span>= ""<span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (spring_props.containsKey(key)) {
value </span>= spring_props.getProperty(key,""<span style="color: #000000;">);
}
</span><span style="color: #0000ff;">return</span><span style="color: #000000;"> value;
}
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|