using System.IO; using System.Linq; using ClosedXML.Excel; using MoreLinq; namespace ClosedXML_Examples { public class LambdaExpressions : IXLExample { public void Create(string filePath) { string tempFile = ExampleHelper.GetTempFilePath(filePath); try { new BasicTable().Create(tempFile); var workbook = new XLWorkbook(tempFile); var ws = workbook.Worksheet(1); // Define a range with the data var firstDataCell = ws.Cell("B4"); var lastDataCell = ws.LastCellUsed(); var rngData = ws.Range(firstDataCell.Address, lastDataCell.Address); // Delete all rows where Outcast = false (the 3rd column) rngData.Rows() // From all rows .Where(r => !r.Cell(3).GetBoolean()) // where the 3rd cell of each row is false .ForEach(r => r.Delete()); // delete the row and shift the cells up (the default for rows in a range) //// Put a light gray background to all text cells //rngData.Cells() // From all cells // .Where(c => c.DataType == XLCellValues.Text) // where the data type is Text // .ForEach(c => c.Style.Fill.BackgroundColor = XLColor.LightGray); // Fill with a light gray var cells = rngData.Cells(); var filtered = cells.Where(c => c.DataType == XLDataType.Text); var list = filtered.ToList(); foreach (var c in list) { c.Style.Fill.BackgroundColor = XLColor.LightGray; } // Put a thick border to the bottom of the table (we may have deleted the bottom cells with the border) rngData.LastRow().Style.Border.BottomBorder = XLBorderStyleValues.Thick; workbook.SaveAs(filePath); } finally { if (File.Exists(tempFile)) { File.Delete(tempFile); } } } } }