Java Apache POI不使用命名范围修改图表

Java Apache POI不使用命名范围修改图表,java,excel,apache-poi,openoffice-calc,Java,Excel,Apache Poi,Openoffice Calc,我需要将数据库中的数据显示在.xls电子表格中。 我可以读/写xls文件,没有任何问题,但显然我不能从头开始创建图表 我阅读了我能找到的每一份文档,并用Excel中的图表创建了一个模板文件,供POI修改 我面临的问题如下:我能够创建命名范围,将它们分配到我的图表,并通过POI修改它们,一点问题也没有。当我恢复到OpenOffice Calc时,问题开始了:它不支持将命名范围作为图表的数据源,因此: 是否有任何方法可以在不使用命名范围的情况下更新图表数据(我可以自己给图表指定范围,每个系列都是一行

我需要将数据库中的数据显示在.xls电子表格中。 我可以读/写xls文件,没有任何问题,但显然我不能从头开始创建图表

我阅读了我能找到的每一份文档,并用Excel中的图表创建了一个模板文件,供POI修改

我面临的问题如下:我能够创建命名范围,将它们分配到我的图表,并通过POI修改它们,一点问题也没有。当我恢复到OpenOffice Calc时,问题开始了:它不支持将命名范围作为图表的数据源,因此:

是否有任何方法可以在不使用命名范围的情况下更新图表数据(我可以自己给图表指定范围,每个系列都是一行的分隔部分)


感谢您

使用命名范围是根据要放置在图表中的未知数据量更改图表数据的最简单方法

如果数据中的行数为常量,则可以将数据的常量范围指定给图表

如果事先不知道行数,那么在没有指定范围的情况下会变得更加棘手。这里的关键是在模板工作表的图表中使用Excel的
OFFSET
COUNTA
公式

描述如何使用这些公式根据数据内容创建动态范围

COUNTA
公式计算恒定范围内填充的单元格数量。
OFFSET
公式根据其输入创建一个动态范围,其中包括范围起点的列和行参数,以及动态范围需要多大的长度和宽度参数

例如,如果第1行中有一个标题行,则有5个数据字段(a-E列),并且您知道数据中的a列永远不会为空,例如

First Name | Last Name | Hire Date | Salary | Manager
-----------+-----------+-----------+--------+---------
Data       | Goes      | Here      |        |
。。。然后在图表范围内使用以下公式确定动态范围:

=OFFSET(A2, 0, 0, COUNTA(A2:A101), 5)
这意味着:从A2开始。调整范围的起点,偏移量为0行0列(范围左上角为A2)。范围的高度是A2和A101之间填充的行数(假设数据最多为100行;根据需要调整
A101
常量)。范围的宽度为5列


上面链接的文章对此进行了更详细的描述。

谢谢您的详细回答,但我想我需要更具体的问题。我写道,我不能为我的图表使用命名范围,因为OpenOffice Calc不支持它们,所以我要求提供任何方法来创建一个可以通过POI编辑并使用Calc和Excel可见的图表。我是否可以将函数=偏移量(xxxxxxxx)分配给图表,而不使用Calc中的命名范围?我可以在以后使用POI修改它吗?非常感谢。