Articles of apache poi

Apache POI在没有Microsoft Office的情况下工作

我已经在我的linux机器上下载了Apache POI,并且我想写一个创buildexcel文件并在其中存储数据的java程序。 我的问题是,我的机器没有Microsoft Office套件。 Apache POI会在其中工作吗?

在工作表上调用autoSizeColumn时发生崩溃,在Linux下运行(Servicemix)

我已经编写了生成excel的模块,并将其部署在Servicemix下。 在Windows环境中一切都很好,但在Linux下,Servicemix在下面的调用中意外崩溃: for (short i=0;i<=3;i++) { log.trace("AutoSize column {}", i); worksheet.autoSizeColumn(i); } 我使用POI 4.2-FINAL,FuseESB 4.2,Java 5.0。 但是,没有hs_err * .pid文件。 Servicemix日志在第一个autoSizeColumn调用结束。 有没有人遇到这样的行为,知道这是怎么造成的,怎么来的?

设置Apache POI的path

我想创buildExcel文件,并使用Java程序在该文件中写入数据。 这是在这里 ,我解压Java POI的地方在哪里存在的Java文件,并包括pathvariables中的path。 当我尝试编译它提供以下错误: data.java:3: package org.apache.poi.hssf.usermodel does not exist import org.apache.poi.hssf.usermodel.HSSFCell; ^ data.java:4: package org.apache.poi.hssf.usermodel does not exist import org.apache.poi.hssf.usermodel.HSSFCellStyle; ^ data.java:5: package org.apache.poi.hssf.usermodel does not exist import org.apache.poi.hssf.usermodel.HSSFRichTextString; ^ data.java:6: package org.apache.poi.hssf.usermodel does not exist import org.apache.poi.hssf.usermodel.HSSFRow; ^ data.java:7: package org.apache.poi.hssf.usermodel does not exist import org.apache.poi.hssf.usermodel.HSSFSheet; ^ data.java:8: package org.apache.poi.hssf.usermodel does not […]

使用excel工作簿时出现exception

我正在使用poi jars在excel工作簿中写入一些数据时,在我的代码中得到这些exception: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at WorkBookDemo.main(WorkBookDemo.java:27) Caused by: java.lang.ClassNotFoundException: org.apache.poi.UnsupportedFileFormatException at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown […]

我如何使用Apache POI在Word文档中添加图像作为我的标题

我正在尝试使用Apache POI创build一个Word文档,它将包含一个图像作为其页眉和一些信息,即作为其页脚的段落。我能够创build只有段落的页眉页脚。但是我需要将图像添加到页眉我无法pipe理,我张贴我的代码在这里正确地给结果作为页眉页脚与段落。有人请帮助我达到这一点, public class CreateWordDoc { public static void main (String[] args) throws Exception { //XWPFDocument document = new XWPFDocument(); CustomXWPFDocument document = new CustomXWPFDocument(new FileInputStream(new File("D:\\test.docx"))); CTP ctp = CTP.Factory.newInstance(); CTR ctr = ctp.addNewR(); CTRPr rpr = ctr.addNewRPr(); CTText textt = ctr.addNewT(); textt.setStringValue( " Client Service Contact:Tomas.Layrisse@mshgroupconsulting.com" ); XWPFParagraph codePara = new XWPFParagraph( ctp, […]

无法在pptx中的BarChart中查看Apache POI更新的数据值而无需编辑

我有一个PPT模板,它只有1张幻灯片用于testing目的。 幻灯片有一个简单的条形图。 我可以通过双击pptx文件来编辑条形图,并且可以更改Sheet1(Barchart中的数据表)中的值,并且可以立即在BarChart中看到更改。 现在,我正在尝试使用POI API来做同样的事情。 我在这里做下面的步骤 阅读模板文件=“MyTemplate.pptx” – https://docs.google.com/file/d/0B-q0lBy0lKLic3dCSUVsZUdGQzA/edit?usp=sharing 在地图中有所有的形状 通过引用它的名称来读取BarChart形状 – “MyBarChart” 阅读BarChart的excel文件 更新Sheet 1中的单元格值 保存所有内容并写入另一个文件 – “MyPresentation.pptx” 当我打开文件 – “MyPresentation.pptx”时,它不会在Bar中预先显示更新的单元格值。 我需要双击图表将其更改为编辑模式,以获得反映的最新值。 为什么在使用POI更新底层数据表时,BarChart没有被刷新? 任何build议来解决这个问题? 这里是完整的代码,也附带了pptx模板文件。 package com.ppt; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.opc.PackagePart; import org.apache.poi.xslf.usermodel.XMLSlideShow; import org.apache.poi.xslf.usermodel.XSLFGraphicFrame; import […]

从Excel xls HSSF获取Apache POI中的图片位置

我的需要是获得一个图片数据为字节,然后它是锚点的细节,并最终在屏幕上显示目标位置和大小的结果为我的用户… API显示我们可以通过工作簿对象获得所有图片的列表,如下所示: List<HSSFPictureData> picturesData = workbook.getAllPictures(); 而且我们也可以获取所有锚点的详细信息(请参阅HSSFClientAnchor详细信息)。 问题是由锚引用的HSSFPicture.getPictureIndex()与上面的getAllPictures()方法的HSSFPictureData集合索引不匹配。 …现在的问题是:如何将HSSFClientAnchor实例映射到特定的HSSFPictureData实例或相反?

在core.xml中更改Excel文件的date和时间格式(ISO 8601)

我正在尝试使用Apache POI打开一个.xlsx文件。 数据格式在/docProps/core.xml中定义为2016-04-05T07:13:50+03:00 。 不幸的是,Apache POI只接受以下格式: 2016-04-05T07:13:50Z 。 如何在Java中以编程方式进行更改?

Apache POI .getCell()错误,java.lang.NullPointerException如果空白,则无法读取单元格

我最近用Apache POI的.getCell()方法处理Excel文件时遇到了麻烦。 如果我尝试实现Cell newCell = sheet.getRow(rowNumber).getCell(columnNumber)或类似的东西,我总是得到错误 Exception in thread "main" java.lang.NullPointerException at ExcelWriter.getWorkbook(ExcelWriter.java:80) at Gui2.<init>(Gui2.java:93) at Main.main(Main.java:24) 如果单元格为空,则指向我正在实现.getCell()方法的行。 我有应该确定如果单元格是空的代码,然后打印一些东西,如果这是真的,但它似乎是空白单元格导致程序错误。 这只发生在某些情况下,但是,我发现如果我创build一个工作表并创build一个for循环在每一行中创build一个新的单元格,我可以读取一个空白单元格,并确定它是空白的。 但是,如果我然后键入一个值到该表中的任何单元格,然后尝试读取不同的空单元格,我再次收到错误消息。 我不明白为什么只有当我尝试读取空单元格时才会出现此错误,但是我需要在程序中循环它们。 这是我的代码片段,是什么导致了错误。 public void getWorkbook(String fileName) { try { existingFile = new FileInputStream(new File(fileName)); workbook = new XSSFWorkbook(existingFile); Sheet newSheet = workbook.getSheet("Test3"); //createSheet("Test3", workbook); Cell newCell = newSheet.getRow(1).getCell(1); if(newCell == null) { System.out.println("Null"); } […]

使用apache poi在excel中检测隐藏的单元格

我们使用apache poi 3.8来parsingexcel。 我们需要能够检测(和跳过)隐藏的行,因为它们往往包含我们的用例中的垃圾数据。 这似乎应该工作: row.isFormatted() && row.getRowStyle().getHidden() 但似乎从来没有任何行级格式化(getRowStyle()总是返回null)。 作为最后的手段,我们认为检查单元格样式可能工作: for (int i = 0; i < row.getLastCellNum(); i++) { Cell cell = row.getCell(i); if (cell != null && cell.getCellStyle() != null && cell.getCellStyle().getHidden()) … 但是对于我们得到的每一行(上面for循环中的自定义输出): Cell 0 is not hidden org.apache.poi.hssf.usermodel.HSSFCellStyle@1b9142d0 / false “getHidden()”不工作还是不工作,因为我认为它呢? 是否有另一种方法来检测隐藏的行? (隐藏的列也将是一个不错的奖金,但略有关系atm)