在POI中,如何重命名工作表而不更改对它的引用?

时间:2018-04-20 05:43:15

标签: reference apache-poi formula renaming

我有SheetA,SheetX有公式引用。 现在我想用SheetB替换SheetA,它类似(但有其他行)。 为此,我将SheetA重命名为OldSheetA,然后将SheetB重命名为SheetA。

这不起作用,因为SheetX上的公式引用现在指向OldSheetA而不是SheetA:

='SheetA'!G5  --becomes--> ='OldSheetA'!G5 

我怎样才能保留指向SheetA的引用?

2 个答案:

答案 0 :(得分:1)

保持引用指向SheetA的唯一方法是避免重命名它。

我怀疑你唯一的选择是:

  1. 在完成所有重命名后,在SheetX中重新指定您的引用 -OR -
  2. 要将数据从SheetA复制到新工作表,然后在SheetA上创建SheetB的数据

答案 1 :(得分:0)

我没有找到使用POI的解决方案,但这个简单的公式修复可以解决问题。在公式中使用INDIRECT()函数来引用SheetA,这样它们就不会受到表格重命名的影响。

而不是像这样的公式:

=SheetA!B2

更改为:

=INDIRECT("SheetA!B2")