我正在使用apache poi创建一个Excel文档。要在工作簿中创建新工作表,请编写以下代码:
Workbook wb = new HSSFWorkbook();
Sheet sh = wb.createSheet();
此代码创建工作表并将其添加到工作簿。但我想以前创建工作表,然后将其添加到工作簿中。像这样:
Sheet sh = new HSSFSheet();
wb.addSheet(sh);
我需要这样的东西,因为我想将数据从一个工作簿的一张复制到另一工作簿的另一张(Workbook接口具有method Sheet cloneSheet(int)
)。但是Workbook界面没有诸如addSheet(Sheet
sh)之类的方法。HSSFWorkbook也是最后一堂课,所以我不能扩展它来实现add方法我该怎么做?
您不能只从一个工作簿中获取一个工作表对象,然后将其添加到另一个工作簿中。
您需要做的是同时打开旧工作簿和新工作簿,并在新工作簿中创建工作表。接下来,将您在旧工作表中使用的所有样式克隆到新工作表上(HSSFCellStyle提供了一种将样式从一个工作簿克隆到另一个工作簿的方法)。最后,遍历所有单元并复制它们。
我有点迷失了 我试过3.17、4.0.0和5.0.0版。 或 我无法获得没有弃用或类型错误的代码:-( 我将Eclipe与Maven和Java11一起使用。在版本发布之后,我做了“更新项目”来更新Maven。
在xlsx工作簿中,有些单元格具有一些无界的SUMIF公式,如下所示:。使用ApachePOI5.0.0对一个SUMIF函数的评估持续100ms,对给定工作簿的评估持续几分钟。 提高执行持续时间的一种方法是将公式绑定到如下内容:。在我的情况下,这不是一个解决方案,因为我不是xlsx文件的作者,系统从未知的人那里获取未知的xlsx文件(因此我不能仅仅告诉他们限制SUMIF范围)。 的当前实现迭代给定
在执行此代码时,它在线程"main"java.lang.NoClassDefFoundError: org/apache/Commons/math3/util/ArithmeticUtils在org.apache.poi.poifs.property.RootProperty.set大小(RootProperty.java:59)在org.apache.poi.poifs.property.Dir
我正在尝试用ApachePOI创建甜甜圈图,但没有任何信息或示例。我尝试使用饼图的例子,但没有成功。你能帮我解决这个问题吗?
我对POI还是新手,但是我想简单地在Excel工作簿中迭代一列。例如,在下表中,如果我只想要列A的值,即列0中的行0-3,有没有有效的方法来做到这一点?我所看到的所有POI都是基于行的。 我有一些大的电子表格,我可以成功地遍历整个表格,但我只是想找出处理这种事情的最佳实践。 提前感谢。
我已经编写了用于编写xlsm(Excel2007)的java文件。 使用ApachePOI库,编写xlsx文件是成功的。编写xlsm文件是成功的。但我无法打开xlsm文件,因为打开xlsm文件时出错。 使用ApachePOI库编写xlsm文件可行吗? 如果可以编写xlsm,请提供如何使用ApachePOI库编写xlsm文件的指南。 谢谢