我需要使用Apache POI库从我的Java代码创建excel表,其中包含条形图,折线图等图表。 可能吗? 我无法找到相同的任何有用的代码示例。
除了Java的POI库之外,还有其他替代方案吗?
答案 0 :(得分:17)
您只能使用Excel模板保留带有POI的图表。 这意味着您创建一个包含图表的Excel模板文件,并将图表的数据源链接到一个definedName,然后您可以从POI加载模板文件并使用代码更改definedName。 当前POI不支持从头开始创建图表。
答案 1 :(得分:6)
答案 2 :(得分:4)
除了Java的POI库之外,还有其他替代方案吗?
还有一些其他的库,但我不确定它是否可以像图表一样写出这样的东西。
如果您可以使用较新的Office版本(使用基于XML的格式文件的版本),那么您可以使用不同的方法:
我知道上面的步骤看起来有点复杂,但是如果你没有太复杂的Excel文件,它应该比看起来更容易。
答案 3 :(得分:2)
这个帖子看起来很旧,我不知道你是否已经想出办法或者仍在寻找方法。
但这就是我要做的。有一个名为JFreeChart的免费图书馆。您可以使用它来生成JPG或PNG文件,然后在使用Apache POI创建它时可以将其插入到excel文件中。
但这种方法的缺点是,当您更改电子表格中的数据时,图表中的数据不会像Excel那样动态更改。现在这是我无法忍受的事情。
所以我现在要做一些研究。我很确定,因为问题已经被问到必须在Apache POI中增加一个功能或者另一种优雅的做事方式。如果我找到了,我一定会在这里发表我的发现。
----更新----
在我持续了大约一个小时的研究中,我只能找到一个名为 SmartXLS的合适的库(请google it,我无法发布链接,因为我是新手并启动了垃圾邮件防范机制)< / strong>远远接近我的用途。您可以通过程序生成excel和图表。该网站非常简单,我找不到任何许可信息,所以我假设它是免费的个人和商业用途。我能够毫无问题地下载库。我还没用过它。试一试,让我们知道它是如何运作的。
答案 4 :(得分:1)
从头开始这将非常复杂,因为您必须弄清楚Excel文件中需要创建的图表来创建图表。我会走另一条路。
创建一个Excel文件,其中包含为某些数据创建条形图等的宏(以常规方式使用Excel)。然后使用Apache POI创建包含所需数据的文件,并从Java启动Excel,执行创建图表的宏。
答案 5 :(得分:1)
我有JSON中的数据,以及带有宏的.xlsm模板文件。 - excel中不需要图表,数据或范围名称
每次需要创建带有图表的工作表时,都会克隆模板工作表,将所需的图表类型放在z1处,并更改插入到适当图表类型的默认折线图。从z1中删除图表类型以避免多次执行。
希望它有所帮助。