public void NamesToDeleteSheets() { HSSFWorkbook b = OpenSample("30978-deleted.xls"); Assert.AreEqual(3, b.NumberOfNames); // Sheet 2 is deleted Assert.AreEqual("Sheet1", b.GetSheetName(0)); Assert.AreEqual("Sheet3", b.GetSheetName(1)); Area3DPtg ptg; NameRecord nr; NPOI.SS.UserModel.IName n; /* ======= Name pointing to deleted sheet ====== */ // First at low level nr = b.Workbook.GetNameRecord(0); Assert.AreEqual("On2", nr.NameText); Assert.AreEqual(0, nr.SheetNumber); Assert.AreEqual(1, nr.ExternSheetNumber); Assert.AreEqual(1, nr.NameDefinition.Length); ptg = (Area3DPtg)nr.NameDefinition[0]; Assert.AreEqual(1, ptg.ExternSheetIndex); Assert.AreEqual(0, ptg.FirstColumn); Assert.AreEqual(0, ptg.FirstRow); Assert.AreEqual(0, ptg.LastColumn); Assert.AreEqual(2, ptg.LastRow); // Now at high level n = b.GetNameAt(0); Assert.AreEqual("On2", n.NameName); Assert.AreEqual("", n.SheetName); Assert.AreEqual("#REF!$A$1:$A$3", n.RefersToFormula); /* ======= Name pointing to 1st sheet ====== */ // First at low level nr = b.Workbook.GetNameRecord(1); Assert.AreEqual("OnOne", nr.NameText); Assert.AreEqual(0, nr.SheetNumber); Assert.AreEqual(0, nr.ExternSheetNumber); Assert.AreEqual(1, nr.NameDefinition.Length); ptg = (Area3DPtg)nr.NameDefinition[0]; Assert.AreEqual(0, ptg.ExternSheetIndex); Assert.AreEqual(0, ptg.FirstColumn); Assert.AreEqual(2, ptg.FirstRow); Assert.AreEqual(0, ptg.LastColumn); Assert.AreEqual(3, ptg.LastRow); // Now at high level n = b.GetNameAt(1); Assert.AreEqual("OnOne", n.NameName); Assert.AreEqual("Sheet1", n.SheetName); Assert.AreEqual("Sheet1!$A$3:$A$4", n.RefersToFormula); /* ======= Name pointing to 3rd sheet ====== */ // First at low level nr = b.Workbook.GetNameRecord(2); Assert.AreEqual("OnSheet3", nr.NameText); Assert.AreEqual(0, nr.SheetNumber); Assert.AreEqual(2, nr.ExternSheetNumber); Assert.AreEqual(1, nr.NameDefinition.Length); ptg = (Area3DPtg)nr.NameDefinition[0]; Assert.AreEqual(2, ptg.ExternSheetIndex); Assert.AreEqual(0, ptg.FirstColumn); Assert.AreEqual(0, ptg.FirstRow); Assert.AreEqual(0, ptg.LastColumn); Assert.AreEqual(1, ptg.LastRow); // Now at high level n = b.GetNameAt(2); Assert.AreEqual("OnSheet3", n.NameName); Assert.AreEqual("Sheet3", n.SheetName); Assert.AreEqual("Sheet3!$A$1:$A$2", n.RefersToFormula); }