예제 #1
0
    public async Task Spreadsheet_StartWorksheet_NoFreezing()
    {
        // Arrange
        var worksheetOptions = new WorksheetOptions();

        using var stream = new MemoryStream();
        await using (var spreadsheet = await Spreadsheet.CreateNewAsync(stream))
        {
            // Act
            await spreadsheet.StartWorksheetAsync("My sheet", worksheetOptions);

            await spreadsheet.FinishAsync();
        }

        // Assert
        SpreadsheetAssert.Valid(stream);
        using var actual = SpreadsheetDocument.Open(stream, true);
        var worksheet = actual.WorkbookPart !.WorksheetParts.Select(x => x.Worksheet).Single();

        Assert.Null(worksheet.SheetViews);
    }
예제 #2
0
    public async Task Spreadsheet_StartWorksheet_Freezing(int?columns, int?rows)
    {
        // Arrange
        var worksheetOptions = new WorksheetOptions
        {
            FrozenColumns = columns,
            FrozenRows    = rows
        };

        var expectedColumnName    = CellReferenceHelper.GetExcelColumnName((columns ?? 0) + 1);
        var expectedCellReference = $"{expectedColumnName}{(rows ?? 0) + 1}";
        var expectedActivePane    = columns switch
        {
            not null when rows is not null => PaneValues.BottomRight,
            not null => PaneValues.TopRight,
            _ => PaneValues.BottomLeft
        };

        using var stream = new MemoryStream();
        await using (var spreadsheet = await Spreadsheet.CreateNewAsync(stream))
        {
            // Act
            await spreadsheet.StartWorksheetAsync("My sheet", worksheetOptions);

            await spreadsheet.FinishAsync();
        }

        // Assert
        SpreadsheetAssert.Valid(stream);
        using var actual = SpreadsheetDocument.Open(stream, true);
        var worksheet = actual.WorkbookPart !.WorksheetParts.Select(x => x.Worksheet).Single();
        var sheetView = worksheet.SheetViews !.Cast <SheetView>().Single();

        Assert.Equal(PaneStateValues.Frozen, sheetView.Pane !.State !.Value);
        Assert.Equal(columns, (int?)sheetView.Pane.HorizontalSplit?.Value);
        Assert.Equal(rows, (int?)sheetView.Pane.VerticalSplit?.Value);
        Assert.Equal(expectedCellReference, sheetView.Pane.TopLeftCell?.Value);
        Assert.Equal(expectedActivePane, sheetView.Pane.ActivePane?.Value);
    }