java中实现图片导入_Java 向表格中导入图片-程序员宅基地

技术标签: java中实现图片导入  

package test; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class TestPOI {     public static void main(String[] args) {         FileOutputStream fileOut = null;         BufferedImage bufferImg = null;         try {             // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray             ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();             bufferImg = ImageIO                     .read(new File(                             "D:\\1346121647928.jpg"));             ImageIO.write(bufferImg, "jpg", byteArrayOut);             // 创建一个工作薄             HSSFWorkbook wb = new HSSFWorkbook();             HSSFSheet sheet1 = wb.createSheet("Sheet1");             // 要导入的图片显示大小198*198像素             HSSFRow row = sheet1.createRow(0);             sheet1.setColumnWidth(0, (int) (35.7 * 198));             row.setHeight((short) (15.625 * 198));             HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();             HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255,                     (short) 0, 0, (short) 0, 0);// 1023*255表示占满单元格             // 插入图片             patriarch.createPicture(anchor, wb.addPicture(byteArrayOut                     .toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));             fileOut = new FileOutputStream("d:/test.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();                 }             }         }     } }

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42350411/article/details/114724151

智能推荐

蓝湖怎么切图标注_【蓝湖指北】一张图教你如何选择标注尺寸-程序员宅基地

文章浏览阅读4.6k次。蓝湖的标注、切图功能广受好评,正确选择标注尺寸,让设计师与工程师的沟通和协作事半功倍。本期【蓝湖指北】,湖湖将手把手教你如何选择标注尺寸。Step 1 :将设计图上传至蓝湖上传设计图至蓝湖,单击设计图任意地方,即可打开设计图标注信息面板,查看该设计图元素大小、描边、颜色、投影、圆角、字体、字号、边距等信息。单击空白处,即可关闭标注面板。Step 2 :标注时,正确选择标注单位点击标注面板右上方三角..._蓝湖改成不同尺寸

关机充电动画客制化以及错位调整_cust_display.h-程序员宅基地

文章浏览阅读1.3k次。[说明] 关机充电动画客制化以及错位调整 [解]一,客制化1,关机充电标志图片都在阿尔卑斯山/供应商/联/专有/启动/引导程序/ LK的/ dev /标识目录下,在这里可以看到多个包含不同尺寸图片的子目录,具体使用哪个子目录下的图片由$ {} BOOT_LOGO决定。 注意:如果客户想要使用客制化的背景图片,可以直接替换子目录下对应编号的图片 2,需要根据实际情况修改。例如: ..._cust_display.h

vue返回列表页页面不刷新,恢复现场_vue 从详情返回列表时不需要刷新列表-程序员宅基地

文章浏览阅读847次。//router.jsconst routes = [ // 列表页 { path: '/list', name: 'list', component: resolve=> require(['@/views/details'],resolve), meta: { title:'列表',keepAlive:true} } // 详情页 { path: '/details'..._vue 从详情返回列表时不需要刷新列表

桌面虚拟化技术-程序员宅基地

文章浏览阅读626次。桌面虚拟化基本定义计算机虚拟化技术当前主要包括服务器虚拟化、应用虚拟化、桌面虚拟化。目前网络虚拟化,显卡虚拟化等技术都在快速发展,在不久的将来,当前物理的设备将都支持虚拟化技术,实现IAAS(infrastructure asservice),实现真正意义的云计算。而桌面虚拟化技术是当前发展最快的,也是最具应用前景的技术。  桌面虚拟化是指将计算机的桌面进行虚..._qq的远程操控是一种桌面虚拟化技术嘛

WinForm开发(52)——WinForm 固定窗体大小,即禁止调整大小-程序员宅基地

文章浏览阅读711次。把主窗体的FormBorderStyle属性设置为: FixedSingle 即可。

做一个实例 搞定matlab界面编程,《一个实例搞定MATLAB界面编程》续——浅谈 GUIDE 和Simulink混合编程...-程序员宅基地

文章浏览阅读283次。《一个实例搞定MATLAB界面编程》续——浅谈GUIDE和Simulink混合编程作者:彭军邮件:pengjun@http://www.doczj.com/doc/1bb93668011ca300a6c3908e.html由于这篇文章是上篇《一个实例搞定MATLAB界面编程》的续篇,所以,一些基本的操作我在这里就不再重复了,需要看上篇的朋友,请到这里下载:http://www.doczj.com/...

随便推点

SpringCloud Zuul过滤器中重新run() 发送请求头 Authorization ,依然无法获取包含token的请求头_java zull 转发请求后未拿到 token-程序员宅基地

文章浏览阅读4.2w次,点赞2次,收藏2次。原因:网关默认过滤"Cookie", "Set-Cookie", "Authorization"private Set<String> sensitiveHeaders = new LinkedHashSet(Arrays.asList("Cookie", "Set-Cookie", "Authorization"));处理方法:yml文件中配置sensitive..._java zull 转发请求后未拿到 token

把标注TXT文件转化为VOC的xml文件_将标注为左上角右下角坐标的数据集转换为voc的xml格式-程序员宅基地

文章浏览阅读5.2k次。参考链接:点击打开链接我自己的数据集格式为filename lable xmin ymin xmax ymax1 通过别的模板转换VOC数据集的xml格式为:&lt;annotation&gt; &lt;folder&gt;VOC2007&lt;/folder&gt; &lt;filename&gt;00..._将标注为左上角右下角坐标的数据集转换为voc的xml格式

金蝶KIS商贸版—(业务结账)期末结账操作介绍-程序员宅基地

文章浏览阅读6.2k次。业务结账业务系统中当一个业务期间已经结束,需要通过〖功能〗→〖业务期末结账〗来截止当期核算单据的处理,计算本期的库存商品成本余额,并转入下一期,同时系统当前期间下置。期末结账前,会对本期的核算单据进行检查,需要确保当前期间所有业务单据都已经审核。通过业务期末结账功能中的【查看】可以查找到当期所有未审核单据;专家温馨提示:1、业务期末结账构成:期末结账、反结账以及查看本期未审核单据。...

STM32程序异常——中断处理要谨慎-程序员宅基地

文章浏览阅读1.7k次。问题背景最近有一个新项目(车载项目),板子上除了原来的ARM + STM32F030K6Tx又多了一个8bit的mcu的单片机,这可真是嵌入式全家福了。系统的主要核心工作是由arm来完成,但是在开机早期及休眠、唤醒等过程是由stm32来控制完成的。开机过程中的ACC打火检测、高低压检测,同时也是为了保证休眠的时候整块板子的的低功耗(休眠时只有rtc有电及stm32处于深度休眠,其他全部..._stm32f030找不到adc中断

linux磁盘扩容、挂载[fdisk、parted]_linux fdisk 扩容-程序员宅基地

文章浏览阅读4.7k次。【代码】linux磁盘扩容、挂载[fdisk、parted]_linux fdisk 扩容

部署React新方式_react部署-程序员宅基地

文章浏览阅读1.5k次。# 为什么要使用ReactReact起源于Facebook内部项目,于2013年开源,由于出众的设计思想,以及更加专注于MVC当中的视图层, 使得创建交互式 UI 变得轻而易举。同时React还可以为你应用的每一个组件设计简洁的视图,当数据改变时 React 能有效地更新并正确地渲染组件。在写React时,就是在写每一个组件,最后将一个界面中的若干组件组合包装成完整页面,这样就实现了无论你现在正在使用什么技术栈,你都可以随时引入 React 来开发新特性,而不需要重写现有代码。跟随本教程,提升We_react部署

推荐文章

热门文章

相关标签