public void TestEvaluateAllFails() { SXSSFWorkbook wb = new SXSSFWorkbook(5); SXSSFSheet s = wb.CreateSheet() as SXSSFSheet; IFormulaEvaluator eval = wb.GetCreationHelper().CreateFormulaEvaluator(); s.CreateRow(0).CreateCell(0).CellFormula = (/*setter*/ "1+2"); s.CreateRow(1).CreateCell(0).CellFormula = (/*setter*/ "A21"); for (int i = 2; i < 19; i++) { s.CreateRow(i); } // Cells outside window will fail, whether referenced or not s.CreateRow(19).CreateCell(0).CellFormula = (/*setter*/ "A1+A2"); s.CreateRow(20).CreateCell(0).CellFormula = (/*setter*/ "A1+A11+100"); try { eval.EvaluateAll(); Assert.Fail("Evaluate All shouldn't work, as some cells outside the window"); } catch (RowFlushedException) { // Expected } // Inactive sheets will fail XSSFWorkbook xwb = new XSSFWorkbook(); xwb.CreateSheet("Open"); xwb.CreateSheet("Closed"); wb.Close(); wb = new SXSSFWorkbook(xwb, 5); s = wb.GetSheet("Closed") as SXSSFSheet; s.FlushRows(); s = wb.GetSheet("Open") as SXSSFSheet; s.CreateRow(0).CreateCell(0).CellFormula = (/*setter*/ "1+2"); eval = wb.GetCreationHelper().CreateFormulaEvaluator(); try { eval.EvaluateAll(); Assert.Fail("Evaluate All shouldn't work, as sheets flushed"); } catch (SheetsFlushedException) { } wb.Close(); }
public void TestTemplateFile() { XSSFWorkbook workBook = XSSFTestDataSamples.OpenSampleWorkbook("sample.xlsx"); SXSSFWorkbook streamingWorkBook = new SXSSFWorkbook(workBook, 10); ISheet sheet = streamingWorkBook.GetSheet("Sheet1"); for (int rowNum = 10; rowNum < 1000000; rowNum++) { IRow row = sheet.CreateRow(rowNum); for (int cellNum = 0; cellNum < 700; cellNum++) { ICell cell = row.CreateCell(cellNum); cell.SetCellValue("somEvalue"); } if (rowNum % 100 == 0) { Console.Write("."); if (rowNum % 10000 == 0) { Console.WriteLine(rowNum); } } } FileStream fos = new FileStream("C:\\temp\\streaming.xlsx", FileMode.Create, FileAccess.ReadWrite); streamingWorkBook.Write(fos); fos.Close(); streamingWorkBook.Close(); workBook.Close(); }