package com.appdev.test;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
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.HSSFPicture;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class ImageToExcel {
public static void main(String args[]) {
String fileUrl = "D:/123.xls";
try {
//创建输入流,读取Excel
File file = new File(fileUrl);
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
POIFSFileSystem fs = new POIFSFileSystem(in);
//获取excel的sheet
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
//把图片流读取到字节流
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
BufferedImage bufferImg = ImageIO.read(new File("D:/image002.gif"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
//HSSFClientAnchor控制图片的大小和位置
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255,
(short) 2, 5, (short) 4, 6);
anchor.setAnchorType(2);
//HSSFPatriarch对流进行操作
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
HSSFPicture pict = patriarch.createPicture(anchor, wb.addPicture(byteArrayOut
.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
//图片自适应
pict.resize();
FileOutputStream fileOut = null;
fileOut = new FileOutputStream(fileUrl);
wb.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用POI库向Excel工作簿中插入图片。这将涵盖相关的API,步骤以及一些实用技巧。 首先,我们需要理解Excel的内部结构。在Excel文件中,图片是以OLE对象的形式存储的。POI提供了...
7. **插入图片**:使用Drawing对象的createPicture方法,传入字节数组和锚点信息,创建图片并添加到Sheet中。 ```java int pictureId = workbook.addPicture(imageBytes, Workbook.PICTURE_TYPE_JPEG); ...
在这个场景中,我们关注的是如何使用POI来创建一个功能丰富的Excel导出工具类,它能够自动设置标题、列名、文件名,并且支持插入图片以及合并单元格。下面将详细介绍这些功能的实现。 首先,要创建一个Excel工作簿...
在这个实例中,我们将深入探讨如何利用POI库来创建一个PowerPoint演示文稿,并在其中插入图片。这个过程涉及到多个步骤,包括设置工作簿,创建幻灯片,以及添加图片到幻灯片。 首先,我们需要在项目中引入Apache ...
本篇将详细讲解如何利用Apache POI将图片嵌入到Excel工作表中。 Apache POI提供了高级API(HSSF和XSSF)来处理Excel的97-2003 (.xls)和2007及以上版本(.xlsx)格式。在将图片写入Excel时,我们主要关注的是`...
在本示例中,我们将探讨如何使用Apache POI库从数据库导出数据到Excel表格,这在数据分析、报告生成或批量数据处理场景中非常常见。Apache POI是一个开源项目,它允许Java开发者创建、修改和显示Microsoft Office...
3. **插入图片**:在Word文档中插入图片需要用到`XWPFPictureData`和`XWPFParagraph`的`addPicture`方法。首先,你需要读取图片文件,将其转换为字节数组,然后添加到文档中。以下是一个例子: ```java byte[] ...
4. 在段落中插入图片:创建一个`XWPFRun`对象,然后创建`XWPFPicture`并将其添加到段落中。 ```java XWPFRun pictureRun = paragraph.createRun(); XWPFPicture pictureInstance = paragraph.createPicture...
总结起来,Java实现Excel中插入图片的核心步骤包括:导入Apache POI库,创建并操作工作簿和工作表,读取和创建图片对象,创建绘图工作表,设置图片位置,最后保存工作簿。在实际开发中,可能还需要处理图片格式转换...
3. **插入图片**:加载Excel工作簿后,你可以使用Sheet对象的createDrawingPatriarch()方法创建一个绘图父元素,这是在Excel工作表上添加图形的起点。接下来,使用ClientAnchor类来定位和设置图片的大小,并使用...
本篇文章将详细介绍如何利用Java和Apache POI库向Excel工作表中插入图片。 首先,我们需要理解Apache POI的工作原理。POI提供了一个名为HSSFPatriarch的类,它是Excel中的图形绘制容器,可以用于插入图片。对于....
- 插入图片、图表和公式。 - 设置单元格样式,如字体、颜色、边框和填充。 - 处理工作簿和工作表的合并。 - 导出和导入数据到数据库。 - 自动化Excel报告生成。 在实际应用中,Apache POI 往往用于数据分析、报表...
3. **加载图片**:你需要将图片文件读取为字节数组,以便在Excel中插入。可以使用`Files.readAllBytes()`方法: ```java byte[] imageBytes = Files.readAllBytes(Paths.get("image.jpg")); ``` 4. **创建图片...
要插入图片,首先需要获取图片的数据,通常是从文件系统或网络加载。这里我们假设图片位于项目资源目录下: ```java FileInputStream imageStream = new FileInputStream("path_to_your_image.jpg"); byte[] ...
Excel部分,POI提供了对Excel电子表格的全面操作,包括创建新的工作簿、添加工作表、插入数据、设置样式、读取和解析已存在的文件等。Word部分,POI允许开发者创建新的Word文档,添加文本、段落、表格、图片,以及...
### POI导入Word文档与图片的关键技术点 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件(如 .doc、.xls 和 .ppt)的 Java API。本文档将详细介绍如何使用 POI 库来读取 Word 文档(包括 ....
例如,通过使用POI库,你可以创建一个新的Excel工作簿,添加工作表,插入数据,设置单元格样式,应用公式,甚至处理图表和图片。同时,也可以读取已存在的Excel文件,提取数据,进行分析,然后将结果写回Excel或保存...
总结起来,这个"利用POI解析excel并存入数据库demo"演示了如何使用 Apache POI 库来读取 Excel 文件,以及如何将读取到的数据存入 MySQL 数据库。开发者可以根据自己的需求对这个 demo 进行扩展,例如支持多个工作表...
更复杂的操作,比如合并单元格、插入图片、使用公式、读取数据等,都可以通过POI提供的API实现。在实际开发中,你可以根据需求调整这些方法,构建出符合业务需求的复杂Excel文件。 需要注意的是,处理大型Excel文件...