Can't delete the extra blank columns

I want my spreadsheet to only show columns that have content, but in reality, it displays many blank columns that cannot be deleted.


Image_7851_1718874031345


I tried the following code but did't work.

var worksheet = _sfSpreadsheet.ActiveSheet;

        var usedRange = worksheet.UsedRange;

        var lastMaxColumn = usedRange.LastColumn;

        var lastMaxRow = usedRange.LastRow;

        var columnCount = testCount;


        var removeCount = lastMaxColumn;

        var addCount = columnCount;


        var startColumn = 1;


        LogHelper.Info("RemoveColumns index: " + startColumn + " count: " + removeCount);

        _sfSpreadsheet.ActiveSheet.DeleteColumn(startColumn, removeCount);

        _sfSpreadsheet.ActiveGrid.Model.RemoveColumns(startColumn, removeCount);


        if (addCount > 0)

        {

            LogHelper.Info("InsertColumn index: " + startColumn + " count: " + addCount);

            _sfSpreadsheet.ActiveSheet.InsertColumn(startColumn, addCount);

            _sfSpreadsheet.ActiveGrid.Model.InsertColumns(startColumn, addCount);

        }


1 Reply

SG Santhosh Govindasamy Syncfusion Team June 21, 2024 04:08 PM UTC

Hi crosslife,

Your requirement is to show only the columns that have content, and delete the remaining empty columns. This can be achieved by updating the ColumnCount of the ActiveGrid in the spreadsheet and assigning the last column count of the used range to ColumnCount. We have included a sample and video reference for you to review.

Please refer the code snippet:

private void OnRefreshClicked(object sender, RoutedEventArgs e)

{

 

    IWorksheet sheet = spreadsheet.ActiveSheet;

    IRange usedRange = sheet.UsedRange;

    spreadsheet.ActiveGrid.ColumnCount = usedRange.LastColumn + 1;

}

 


Regards,
Santhosh.G


Attachment: SpreadSheetDemo1_b219f0e3.zip

Loader.
Up arrow icon