public async Task Spreadsheet_AddRow_CellWithVeryLongFormulaAndCachedValue(int length) { // Arrange var formulaText = FormulaGenerator.Generate(length); var cachedValue = new string('c', length); using var stream = new MemoryStream(); var options = new SpreadCheetahOptions { BufferSize = SpreadCheetahOptions.MinimumBufferSize }; await using (var spreadsheet = await Spreadsheet.CreateNewAsync(stream, options)) { await spreadsheet.StartWorksheetAsync("Sheet"); var formula = new Formula(formulaText); var cell = new Cell(formula, cachedValue); // Act await spreadsheet.AddRowAsync(cell); await spreadsheet.FinishAsync(); } // Assert SpreadsheetAssert.Valid(stream); using var workbook = new XLWorkbook(stream); var worksheet = workbook.Worksheets.Single(); var actualCell = worksheet.Cell(1, 1); Assert.Equal(formulaText, actualCell.FormulaA1); Assert.Equal(cachedValue, actualCell.Value); }
public async Task Spreadsheet_AddRow_CellWithVeryLongStringValue(int length, Type type) { // Arrange var value = new string('a', length); using var stream = new MemoryStream(); var options = new SpreadCheetahOptions { BufferSize = SpreadCheetahOptions.MinimumBufferSize }; await using (var spreadsheet = await Spreadsheet.CreateNewAsync(stream, options)) { await spreadsheet.StartWorksheetAsync("Sheet"); var cell = CellFactory.Create(type, value); // Act await spreadsheet.AddRowAsync(cell); await spreadsheet.FinishAsync(); } // Assert SpreadsheetAssert.Valid(stream); using var actual = SpreadsheetDocument.Open(stream, true); var sheetPart = actual.WorkbookPart !.WorksheetParts.Single(); var actualCell = sheetPart.Worksheet.Descendants <OpenXmlCell>().Single(); Assert.Equal(CellValues.InlineString, actualCell.DataType?.Value); Assert.Equal(value, actualCell.InnerText); }