简体   繁体   中英

How to find empty rows from excel sheet given by user and delete them in asp.net

public async Task<List<IndiaCIT>> Import(IFormFile file)
        {
            var list = new List<IndiaCIT>();
            using (var stream = new MemoryStream())
            {
                await file.CopyToAsync(stream);
                ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

                using (var package=new ExcelPackage(stream))
                {
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
                    var rowcount = worksheet.Dimension.Rows;
                   
                   
                    for (int row = 1; row <= rowcount; row++)
                    {
                       
                        list.Add(new IndiaCIT {

                            NameCH = worksheet.Cells[row, 1].Value.ToString().Trim(),
                            City= worksheet.Cells[row, 2].Value.ToString().Trim(),
                            Age = worksheet.Cells[row, 3].Value.ToString().Trim(),
                            
                        });
                       
                    }
                }
            }
            return list;
        }

this is controller code and in model class declared the columns name and used it as IndiaCIT list in controller,. I want empty rows to get deleted

This could help: For each row in the sheet, check if the cell in each column is empty. If so delete it.

var rowcount = worksheet.Dimension.Rows;
var maxColums = worksheet.Dimension.Columns;

for(int row = rowcount; row > 0; row--)
{
    bool isRowEmpty = true;
    for(int column = 1; column <= maxColumns; column++)
    {
        var cellEntry = worksheet.Cells[row, column].Value.ToString();
        if(!string.IsNullOrEmpty(cellEntry)
        {
             isRowEmpty = false;
             break;
        }
     }
     if(!isRowEmpty)
        continue;
     else
        worksheet.DeleteRow(row);
}

I generally use Spire.Xls to handle such problems. It works for me.

    public IActionResult Test() {

        //init workbook
        Workbook workbook = new Workbook();
        // load file
        workbook.LoadFromFile("11.xlsx");

        // get the first sheet
        Worksheet sheet = workbook.Worksheets[0];

        //delete blank row 
        for (int i = sheet.Rows.Count() - 1; i >= 0; i--)
        {
            if (sheet.Rows[i].IsBlank)
            {
                sheet.DeleteRow(i + 1); 
            }
        }
        //delete blank column
        for (int j = sheet.Columns.Count() - 1; j >= 0; j--)
        {
            if (sheet.Columns[j].IsBlank)
            {
                sheet.DeleteColumn(j + 1); 
            }
        }

        //save as a new xls file
        workbook.SaveToFile("new.xlsx", ExcelVersion.Version2016);
        return Ok();
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM