public void TestHSSFSetArrayFormula_SingleCell() { IWorkbook workbook = new HSSFWorkbook(); ISheet sheet = workbook.CreateSheet("Sheet1"); CellRangeAddress range = new CellRangeAddress(2, 2, 2, 2); ICell[] cells = sheet.SetArrayFormula("SUM(C11:C12*D11:D12)", range).FlattenedCells; Assert.AreEqual(1, cells.Length); // sheet.SetArrayFormula Creates rows and cells for the designated range Assert.IsNotNull(sheet.GetRow(2)); ICell cell = sheet.GetRow(2).GetCell(2); Assert.IsNotNull(cell); Assert.IsTrue(cell.IsPartOfArrayFormulaGroup); //retrieve the range and check it is the same Assert.AreEqual(range.FormatAsString(), cell.GetArrayFormulaRange().FormatAsString()); FormulaRecordAggregate agg = (FormulaRecordAggregate)(((HSSFCell)cell).CellValueRecord); Assert.AreEqual(range.FormatAsString(), agg.GetArrayFormulaRange().FormatAsString()); Assert.IsTrue(agg.IsPartOfArrayFormula); }
public void TestArrayFormulas_illegalCalls() { IWorkbook workbook = _testDataProvider.CreateWorkbook(); ISheet sheet = workbook.CreateSheet(); ICell cell = sheet.CreateRow(0).CreateCell(0); Assert.IsFalse(cell.IsPartOfArrayFormulaGroup); try { cell.GetArrayFormulaRange(/*getter*/); Assert.Fail("expected exception"); } catch (InvalidOperationException e) { Assert.AreEqual("Cell A1 is not part of an array formula.", e.Message); } try { sheet.RemoveArrayFormula(cell); Assert.Fail("expected exception"); } catch (ArgumentException e) { Assert.AreEqual("Cell A1 is not part of an array formula.", e.Message); } }
public void TestSetArrayFormula_SingleCell() { ICell[] cells; IWorkbook workbook = _testDataProvider.CreateWorkbook(); ISheet sheet = workbook.CreateSheet(); ICell cell = sheet.CreateRow(0).CreateCell(0); Assert.IsFalse(cell.IsPartOfArrayFormulaGroup); try { cell.GetArrayFormulaRange(/*getter*/); Assert.Fail("expected exception"); } catch (InvalidOperationException e) { Assert.AreEqual("Cell A1 is not part of an array formula.", e.Message); } // row 3 does not yet exist Assert.IsNull(sheet.GetRow(2)); CellRangeAddress range = new CellRangeAddress(2, 2, 2, 2); cells = sheet.SetArrayFormula("SUM(C11:C12*D11:D12)", range).FlattenedCells; Assert.AreEqual(1, cells.Length); // sheet.SetArrayFormula Creates rows and cells for the designated range Assert.IsNotNull(sheet.GetRow(2)); cell = sheet.GetRow(2).GetCell(2); Assert.IsNotNull(cell); Assert.IsTrue(cell.IsPartOfArrayFormulaGroup); //retrieve the range and check it is the same Assert.AreEqual(range.FormatAsString(), cell.GetArrayFormulaRange().FormatAsString()); //check the formula Assert.AreEqual("SUM(C11:C12*D11:D12)", cell.CellFormula); }