Deleting rows breaks the merged cells

I am deleting some line and the merged cell address after this line is wrong. For example, cells "A78: C78" are merged. If i do

worksheet.DeleteRow(5)

      

Address

worksheet.Cells[77,1]

      

- "A77". But

worksheet.MergedCells[77,1]

      

is null, but it should be "A77: C77".

Address

worksheet.Cells[78,1]

      

- "A78". But

worksheet.MergedCells[78,1]

      

- "A77: C77", but it must be zero. Interestingly and strangely, the saved document in * .xlsx contains merged cells "A77: C77". I don't understand why this is happening. Maybe you need to somehow update the sheet after deleting rows for the correct address of the merged cells?

+3


source to share


1 answer


The solution to override this problem is to save the file before getting the merged cell address again, I tried the following code in the same example you provided and the results seem to be correct after package.Save ().

 using (var package = new ExcelPackage(new System.IO.FileInfo(filePath)))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
            var address = worksheet.Cells[78, 1];//address is "A78"
            var mergedadress = worksheet.MergedCells[78, 1];//address is "A78:C78"
            worksheet.DeleteRow(5);
            address = worksheet.Cells[77, 1];//address is "A77"
            mergedaddress = worksheet.MergedCells[77, 1];//null
            address = worksheet.Cells[78, 1];//address is "A78"
            mergedaddress = worksheet.MergedCells[78, 1];//address is"A77:C77"
            package.Save();
        }

 using (var package = new ExcelPackage(new System.IO.FileInfo(filePath)))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
            var address = worksheet.Cells[77, 1];//address is "A77"
            var mergedaddress = worksheet.MergedCells[77, 1];//Address is "A77:C77"
            address = worksheet.Cells[78, 1];//address is "A78"
            mergedaddress = worksheet.MergedCells[78, 1];//null

            package.Save();
        }

      



I used EPPLUS v4.1.1.0

+1


source







All Articles