Reference 在POI中,如何在不更改图纸引用的情况下重命名图纸?
我有SheetA,SheetX有公式参考。 现在我想用类似的SheetB替换SheetA(但有额外的行)。 为此,我将SheetA重命名为OldSheetA,然后将SheetB重命名为SheetA 这不起作用,因为SheetX上的公式引用现在指向OldSheetA而不是SheetA:Reference 在POI中,如何在不更改图纸引用的情况下重命名图纸?,reference,apache-poi,formula,renaming,Reference,Apache Poi,Formula,Renaming,我有SheetA,SheetX有公式参考。 现在我想用类似的SheetB替换SheetA(但有额外的行)。 为此,我将SheetA重命名为OldSheetA,然后将SheetB重命名为SheetA 这不起作用,因为SheetX上的公式引用现在指向OldSheetA而不是SheetA: ='SheetA'!G5 --becomes--> ='OldSheetA'!G5 我怎样才能保持引用指向SheetA 保持引用指向SheetA的唯一方法是避免重命名它 我想你唯一的选择是: 在完成所有
='SheetA'!G5 --becomes--> ='OldSheetA'!G5
我怎样才能保持引用指向SheetA 保持引用指向SheetA的唯一方法是避免重命名它 我想你唯一的选择是:
-或-
我没有找到一个使用POI的解决方案,但是这个简单的公式修正就解决了这个问题。在公式中使用INDIRECT()函数引用SheetA,这样它们就不会受到图纸重命名的影响 而不是像这样的公式:
=SheetA!B2
更改为:
=INDIRECT("SheetA!B2")
对不起,这部分让人困惑,所以我把它删除了。谢谢@jmarkmurphy。我的工作簿是SXSSF(流式模型工作簿),所以我无法覆盖工作表的当前内容。我通过在公式中使用间接()函数找到了解决方案。例如,更改公式,=SWIBHist!B2至=间接(“开关列表!B2”)。