0 0

java POI 怎么删除或替换excel里已有的图片5

java POI 怎么删除或替换excel里已有的图片?

问题补充:
xiaolv 写道
package com.asiainfo.sh;

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.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class TestPOI {

	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:/PieChart.jpg"));
			bufferImg1 = ImageIO.read(new File("d:/fruitBarChart.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, 512, 255, (short) 1, 1, (short) 10, 20);
			HSSFClientAnchor anchor1 = new HSSFClientAnchor(0, 0, 512, 255, (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();
				}
			}
		}
	}
}


如何删除原来的图片?
2012年1月09日 17:10

3个答案 按时间排序 按投票排序

0 0

对好像设置单元格的值为空,就可以了。实际上上就是将他的内容清空。

2012年1月09日 22:56
0 0

删除?
设置单元格的值为空就行了啊!

2012年1月09日 22:11
0 0

package com.asiainfo.sh;

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.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class TestPOI {

	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:/PieChart.jpg"));
			bufferImg1 = ImageIO.read(new File("d:/fruitBarChart.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, 512, 255, (short) 1, 1, (short) 10, 20);
			HSSFClientAnchor anchor1 = new HSSFClientAnchor(0, 0, 512, 255, (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();
				}
			}
		}
	}
}

2012年1月09日 17:21

相关推荐

    java 读取excel内容 创建excel 插入文字及图片

    在Java编程中,处理Excel文件是一项常见的任务,无论是读取数据、创建新的Excel工作簿,还是向其中插入文字和图片,都有成熟的库可以支持。本篇文章将深入探讨如何使用Java来实现这些功能。 首先,我们需要引入一个...

    java基于poi通过excel模板导出

    在Java编程领域,Apache POI库是一个非常流行的API,它允许开发者读取、写入以及修改Microsoft Office格式的文件,包括Excel。本篇文章将详细探讨如何利用POI库基于模板来导出Excel文档。 首先,我们需要理解Apache...

    Java处理Excel文档需要POI依赖jar包

    Java处理Excel文档时,Apache POI是一个不可或缺的库,它是一个强大的API,专门用于读取、写入Microsoft Office格式的文件,尤其是Excel(.xls和.xlsx)。本压缩包提供的是一系列完整的POI依赖jar包,使得Java开发者...

    Java Poi流 根据Word模板插入相应的文本、表格和图片,生成新的Word报告

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,如Word、Excel等。在本场景中,我们主要关注如何使用Java POI处理Word文档,特别是通过模板来生成新的Word报告。这个...

    java-POI相关jar包

    - 读取已有Excel文件并进行分析。 2. Word处理: - 创建新的Word文档,添加段落、标题、图片等元素。 - 修改现有Word文档,如替换文本、调整样式等。 - 读取Word文档内容,提取所需信息。 3. PowerPoint处理:...

    \"java+poi+Excel模板\"制作简单的报表

    描述中提到的博文链接(已省略)通常会包含一个具体的示例或教程,讲解如何使用Java和Apache POI来实现Excel模板的制作。由于描述为空,我们无法直接获取具体的信息,但通常这样的教程会涵盖以下步骤: 1. **引入...

    Java编辑Excel的类库(poi)

    可以使用`createSheet()`方法创建新的Sheet,`getSheet()`或`getSheetAt()`方法获取已有Sheet。 ```java Sheet sheet = workbook.createSheet("My Sheet"); ``` 3. 行(Row)与单元格(Cell)操作:Sheet包含行,...

    java 读取word、excel及pdf的jar包(POI,PDFBox)

    - 修改现有PDF,如添加文本、图像或修改已有的元素,都需要`PDPageContentStream`。 - 删除或替换页面:`PDDocument`提供了相应的操作方法。 - 更新元数据:修改`PDDocumentInformation`对象后保存。 4. **PDF...

    java 导出Excel poi读写数据

    在Java编程中,导出Excel是一项常见的任务,特别是在数据分析、报表生成或数据交换等领域。Apache POI是一个流行的库,它...通过结合模板,我们可以方便地根据已有的样式填充数据,使得Excel文件的生成更加高效和专业。

    java POI 操作 WORD 包

    读取已有的 Word 文档,你需要使用 `Document` 类的构造函数,传入文件输入流: ```java FileInputStream fis = new FileInputStream("path_to_your_file.doc"); HWPFDocument doc = new HWPFDocument(fis); //...

    ExcelUtils源码包,将依赖的POI2.5.1升级为高版本的POI

    例如,某些方法可能已被废弃,或者有新的类和接口引入来替换旧的API。同时,性能优化也是新版本POI的一个重点,因此在处理大量数据时,可能会看到明显的性能提升。 在压缩包文件"ExcelUtils-1.41"中,可能包含了...

    利用JAVA操作EXCEL文件

    在Java编程中,操作Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据导入导出等场景。Java Excel API(通常指的是jxl库)提供了一种简单的方式来读取和写入Excel文件,支持.xls格式(Excel 2003及之前...

    POI模版导出excel

    Apache POI是Java中一个流行的开源库,它允许开发者读写Microsoft Office格式的文件,包括Excel。本知识点主要涉及如何利用POI库生成基于模板的Excel文件,这在数据报告、数据分析或自动化工作中非常常见。 在描述...

    excel第三方包

    总结来说,"excel第三方包"主要包含Apache POI和JXL两个主要组件,它们极大地简化了Java开发者处理Excel文件的工作,提供了丰富的功能和灵活的接口,使得在Java应用中与Excel交互变得简单易行。无论是处理老式BIFF...

    poiExcel简单操作

    此外,如果你需要写入数据到Excel,可以创建新的工作表或修改已有的工作表。创建新行和单元格的方法如下: ```java // 创建新行 Row newRow = sheet.createRow(sheet.getLastRowNum() + 1); // 创建新单元格并设置...

    java Apache poi word模板 表格模板 word报表.zip

    开发者可以创建或加载已有的Word模板文件,然后通过替换占位符、插入文本、图片、表格等元素来生成定制化的报表。 3. **Word表格模板** `XWPFTable`和`XWPFTableRow`是Apache POI用于创建和操作Word表格的主要类。...

    kkk001-poi-el-master_java_

    - POI-EL提供了一套API,用于读取和解析已有的Excel文件,将数据映射到Java对象中。 - 用户可以定义自己的数据验证规则,比如数据类型检查、长度限制等,确保导入的数据符合预期。 - 支持批处理导入,提高数据...

    POI操作Word资料

    同样,你也可以更新或删除已有的图像。 4. **操作表格**: XWPFTable类提供了创建和修改Word表格的方法。你可以定义表格的行数、列数,设置单元格的内容,甚至调整表格样式。 5. **样式和格式**: POI提供了对...

    poi解析2007报错替换包

    在处理Microsoft Office 2007格式的Excel文件时,我们经常会使用Apache POI库,这是一个强大的Java API,专门用于读取和写入Microsoft Office格式的文件,包括Excel。然而,有时在使用过程中可能会遇到一些报错,...

    Java jacob将word和excel转为pdf

    总的来说,Jacob为Java开发者提供了一个方便的工具,可以利用已有的Office功能进行文件格式转换,尽管这可能会带来一定的系统依赖性和性能限制。在实际项目中,也可以考虑使用其他专门的PDF生成库,如Apache POI、...

Global site tag (gtag.js) - Google Analytics