public void Bug47813() { XSSFWorkbook wb1 = XSSFTestDataSamples.OpenSampleWorkbook("47813.xlsx"); Assert.AreEqual(3, wb1.NumberOfSheets); Assert.IsNotNull(wb1.GetCalculationChain()); Assert.AreEqual("Numbers", wb1.GetSheetName(0)); //the second sheet is of type 'chartsheet' Assert.AreEqual("Chart", wb1.GetSheetName(1)); Assert.IsTrue(wb1.GetSheetAt(1) is XSSFChartSheet); Assert.AreEqual("SomeJunk", wb1.GetSheetName(2)); wb1.RemoveSheetAt(2); Assert.AreEqual(2, wb1.NumberOfSheets); Assert.IsNull(wb1.GetCalculationChain()); XSSFWorkbook wb2 = (XSSFWorkbook)XSSFTestDataSamples.WriteOutAndReadBack(wb1); Assert.AreEqual(2, wb2.NumberOfSheets); Assert.IsNull(wb2.GetCalculationChain()); Assert.AreEqual("Numbers", wb2.GetSheetName(0)); Assert.AreEqual("Chart", wb2.GetSheetName(1)); wb2.Close(); wb1.Close(); }
public void TestBug47737() { XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("47737.xlsx"); Assert.AreEqual(2, wb.NumberOfNames); Assert.IsNotNull(wb.GetCalculationChain()); XSSFName nm0 = (XSSFName)wb.GetNameAt(0); Assert.IsTrue(nm0.GetCTName().IsSetLocalSheetId()); Assert.AreEqual(0u, nm0.GetCTName().localSheetId); XSSFName nm1 = (XSSFName)wb.GetNameAt(1); Assert.IsTrue(nm1.GetCTName().IsSetLocalSheetId()); Assert.AreEqual(1u, nm1.GetCTName().localSheetId); wb.RemoveSheetAt(0); Assert.AreEqual(1, wb.NumberOfNames); XSSFName nm2 = (XSSFName)wb.GetNameAt(0); Assert.IsTrue(nm2.GetCTName().IsSetLocalSheetId()); Assert.AreEqual(0u, nm2.GetCTName().localSheetId); //calculation chain is Removed as well Assert.IsNull(wb.GetCalculationChain()); }
public void TestRemoveSheet() { // Test removing a sheet maintains the named ranges correctly XSSFWorkbook wb = new XSSFWorkbook(); wb.CreateSheet("Sheet1"); wb.CreateSheet("Sheet2"); XSSFName sheet1Name = wb.CreateName() as XSSFName; sheet1Name.NameName = "name1"; sheet1Name.SheetIndex = 0; sheet1Name.RefersToFormula = "Sheet1!$A$1"; XSSFName sheet2Name = wb.CreateName() as XSSFName; sheet2Name.NameName = "name1"; sheet2Name.SheetIndex = 1; sheet2Name.RefersToFormula = "Sheet2!$A$1"; Assert.IsTrue(wb.GetAllNames().Contains(sheet1Name)); Assert.IsTrue(wb.GetAllNames().Contains(sheet2Name)); Assert.AreEqual(2, wb.GetNames("name1").Count); Assert.AreEqual(sheet1Name, wb.GetNames("name1")[0]); Assert.AreEqual(sheet2Name, wb.GetNames("name1")[1]); // Remove sheet1, we should only have sheet2Name now wb.RemoveSheetAt(0); Assert.IsFalse(wb.GetAllNames().Contains(sheet1Name)); Assert.IsTrue(wb.GetAllNames().Contains(sheet2Name)); Assert.AreEqual(1, wb.GetNames("name1").Count); Assert.AreEqual(sheet2Name, wb.GetNames("name1")[0]); // Check by index as well for sanity Assert.AreEqual(1, wb.NumberOfNames); Assert.AreEqual(0, wb.GetNameIndex("name1")); Assert.AreEqual(sheet2Name, wb.GetNameAt(0)); wb.Close(); }