Tag: apache poi

如何使用POI在Excel表格中设置打印标题行?

我想设置打印标题行,所以标题将打印在我使用POI 2.5.1的每一页的顶部

Apache POI – 写入Excel模板而不覆盖现有的单元格格式

我正在使用Apache POI将数据写入Excel模板。 该模板仅在第一行包含标题,但是我也将特定样式应用于整个列(例如“会计”和“百分比”)。 将数据写入新单元格时使用这些格式将会很好。 但是,如果我使用createRow和createCell方法,单元格格式将被覆盖,并为所有单元格获得General。 如果我尝试使用getRow和getCell ,我碰到检索空白单元格的NullPointerExceptions。 有没有办法使用保存在模板中的预先存在的单元格格式? 或者我坚持通过API自己设置数据格式? 谢谢你的帮助。

主线程中使用apache poi读取xlsx的NoSuchMethodError

我的代码是 […] import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFRow; public class ExcelRead { public static void main( String [] args ) { try { File excel = new File("Book1.xlsx"); FileInputStream fis = new FileInputStream(excel); XSSFWorkbook book = new XSSFWorkbook(fis); XSSFSheet sheet = book.getSheetAt(0); Iterator rows = […]

将数据写入具有表的Excel(xlsx)工作表中

我正在尝试在已经创build表的Excel工作表(xlsx)中写入dynamic数据,基于此,我们使用macros在Excel本身中绘制图表。 我正在使用POI来写入数据。 表格中的表格已被设置为10行。 当我写入超过10行的数据时,表格不会被展开。因此,绘制的图表只包含对应于10行的数据。 如何写数据,以便数据始终将表扩展为数据中的行数?

Apache POI:API来识别Excel工作表中的表格并读取它们

是否有任何方法返回工作表中存在的表的列表? 我的要求是从工作表上的多个表中获取数据。

从.doc文件中区分.xls的正确方法是什么?

我search如何检测该文件是.xls ,我发现了这样的解决scheme(但不弃用): POIFSFileSystem: @Deprecated @Removal(version="4.0") public static boolean hasPOIFSHeader(InputStream inp) throws IOException { return FileMagic.valueOf(inp) == FileMagic.OLE2; } 但是,对于所有的Microsoft Word文档,例如.doc这个返回true 有没有办法检测.xls文件?

是否可以将VB添加到POI的Excel表单中?

有谁知道是否有可能从Java内部添加VB到Excel文档? 我基本上想要将数据透视表添加到工作表,并dynamic设置它的一些属性。 我知道我可以从VB访问数据透视表设置,但不能直接从POI访问。

Excel POI 3.5 WorkBook Java堆空间exception?

我正在使用最新的POI 3.5读取Excel。 我已经安装了Excel MS Office 2007,并为此poi提供了执行数据的XSSF。 对于15000行数据,它正在正确执行,但是当超出限制直到30000或100000或200000时,它很容易出现Java堆空间exception。 代码如下: UATinput = new FileInputStream(UATFilePath); uatBufferedInputStream = new BufferedInputStream(UATinput); UATworkbook = new XSSFWorkbook(uatBufferedInputStream); 我在Java堆大小的最后一行中得到exception。 我已经使用-Xms256m -Xmx1536m增加了大小,但是仍然为更多的数据提供了Java堆空间exception。 任何人都可以帮我解决这个XSSFWorbookexception吗?

使用Apache POI重新计算电子表格中的公式

我正在尝试使用POI XSSF来评估一些Excel公式。 值不必保存,我可能需要计算许多公式,所以我试图在同一个单元格中完成。 问题在于,即使在我重新计算之后,单元格值似乎也卡在了input的第一个公式上 FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator(); XSSFCell formulaCell = row.createCell(6); formulaCell.setCellFormula("Date(2011,10,6)"); CellValue cellValue = evaluator.evaluate(formulaCell); System.out.println(cellValue.getNumberValue()); formulaCell.setCellFormula("Date(1911,3,4)"); cellValue = evaluator.evaluate(formulaCell); System.out.println(cellValue.getNumberValue()); 这两个时间输出40822.0 40822.0(excel相当于10/6/2011),而不是重新评估新的公式。

通过apache poi读取excel文件(在classpath中)

我想阅读(使用Apache poi).xlsx文件,这是不是在文件系统,但在类path。 我正在使用maven – 所以它在资源文件夹。 我的代码是 – InputStream resourceAsStream = MyReader.class.getClassLoader().getResourceAsStream("test.xlsx"); Workbook wb = new XSSFWorkbook(resourceAsStream); 我得到这个例外。 Caused by: java.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toString(ZipCoder.java:58) ~[?:1.7.0_51] at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:297) ~[?:1.7.0_51] at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:121) ~[?:1.7.0_51] at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:51) ~[poi a3] at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:88) ~[poi-ooxml-3.11-beta3.jar:3.11-beta3] at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:272) ~[poi-ooxml-3.11-beta3.jar:3.11-beta3] at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37) ~[poi-ooxml-3.11-beta3.jar:3.11-beta3] 当我从文件系统读取相同的文件时,一切都很好。 我的代码中是否有错误,或者我想知道什么? UPDATE1:这是在web应用程序,所以代码部署在tomcat 7。 更新2:当我用这种方式读取相同的文件 – 它的工作原理。 File file = new File("C:\\Users\\…..\\test.xlsx"); […]