-
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个答案 按时间排序 按投票排序
-
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来实现这些功能。 首先,我们需要引入一个...
在Java编程领域,Apache POI库是一个非常流行的API,它允许开发者读取、写入以及修改Microsoft Office格式的文件,包括Excel。本篇文章将详细探讨如何利用POI库基于模板来导出Excel文档。 首先,我们需要理解Apache...
Java处理Excel文档时,Apache POI是一个不可或缺的库,它是一个强大的API,专门用于读取、写入Microsoft Office格式的文件,尤其是Excel(.xls和.xlsx)。本压缩包提供的是一系列完整的POI依赖jar包,使得Java开发者...
Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,如Word、Excel等。在本场景中,我们主要关注如何使用Java POI处理Word文档,特别是通过模板来生成新的Word报告。这个...
- 读取已有Excel文件并进行分析。 2. Word处理: - 创建新的Word文档,添加段落、标题、图片等元素。 - 修改现有Word文档,如替换文本、调整样式等。 - 读取Word文档内容,提取所需信息。 3. PowerPoint处理:...
描述中提到的博文链接(已省略)通常会包含一个具体的示例或教程,讲解如何使用Java和Apache POI来实现Excel模板的制作。由于描述为空,我们无法直接获取具体的信息,但通常这样的教程会涵盖以下步骤: 1. **引入...
可以使用`createSheet()`方法创建新的Sheet,`getSheet()`或`getSheetAt()`方法获取已有Sheet。 ```java Sheet sheet = workbook.createSheet("My Sheet"); ``` 3. 行(Row)与单元格(Cell)操作:Sheet包含行,...
- 修改现有PDF,如添加文本、图像或修改已有的元素,都需要`PDPageContentStream`。 - 删除或替换页面:`PDDocument`提供了相应的操作方法。 - 更新元数据:修改`PDDocumentInformation`对象后保存。 4. **PDF...
在Java编程中,导出Excel是一项常见的任务,特别是在数据分析、报表生成或数据交换等领域。Apache POI是一个流行的库,它...通过结合模板,我们可以方便地根据已有的样式填充数据,使得Excel文件的生成更加高效和专业。
读取已有的 Word 文档,你需要使用 `Document` 类的构造函数,传入文件输入流: ```java FileInputStream fis = new FileInputStream("path_to_your_file.doc"); HWPFDocument doc = new HWPFDocument(fis); //...
例如,某些方法可能已被废弃,或者有新的类和接口引入来替换旧的API。同时,性能优化也是新版本POI的一个重点,因此在处理大量数据时,可能会看到明显的性能提升。 在压缩包文件"ExcelUtils-1.41"中,可能包含了...
在Java编程中,操作Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据导入导出等场景。Java Excel API(通常指的是jxl库)提供了一种简单的方式来读取和写入Excel文件,支持.xls格式(Excel 2003及之前...
Apache POI是Java中一个流行的开源库,它允许开发者读写Microsoft Office格式的文件,包括Excel。本知识点主要涉及如何利用POI库生成基于模板的Excel文件,这在数据报告、数据分析或自动化工作中非常常见。 在描述...
总结来说,"excel第三方包"主要包含Apache POI和JXL两个主要组件,它们极大地简化了Java开发者处理Excel文件的工作,提供了丰富的功能和灵活的接口,使得在Java应用中与Excel交互变得简单易行。无论是处理老式BIFF...
此外,如果你需要写入数据到Excel,可以创建新的工作表或修改已有的工作表。创建新行和单元格的方法如下: ```java // 创建新行 Row newRow = sheet.createRow(sheet.getLastRowNum() + 1); // 创建新单元格并设置...
开发者可以创建或加载已有的Word模板文件,然后通过替换占位符、插入文本、图片、表格等元素来生成定制化的报表。 3. **Word表格模板** `XWPFTable`和`XWPFTableRow`是Apache POI用于创建和操作Word表格的主要类。...
- POI-EL提供了一套API,用于读取和解析已有的Excel文件,将数据映射到Java对象中。 - 用户可以定义自己的数据验证规则,比如数据类型检查、长度限制等,确保导入的数据符合预期。 - 支持批处理导入,提高数据...
同样,你也可以更新或删除已有的图像。 4. **操作表格**: XWPFTable类提供了创建和修改Word表格的方法。你可以定义表格的行数、列数,设置单元格的内容,甚至调整表格样式。 5. **样式和格式**: POI提供了对...
在处理Microsoft Office 2007格式的Excel文件时,我们经常会使用Apache POI库,这是一个强大的Java API,专门用于读取和写入Microsoft Office格式的文件,包括Excel。然而,有时在使用过程中可能会遇到一些报错,...
总的来说,Jacob为Java开发者提供了一个方便的工具,可以利用已有的Office功能进行文件格式转换,尽管这可能会带来一定的系统依赖性和性能限制。在实际项目中,也可以考虑使用其他专门的PDF生成库,如Apache POI、...