Other answers will not generate a valid CSV if the cells have a separator, so here is the best way
var lastCellAddress = worksheet.RangeUsed().LastCell().Address; File.WriteAllLines(csvFileName, worksheet.Rows(1, lastCellAddress.RowNumber) .Select(r => string.Join(",", r.Cells(1, lastCellAddress.ColumnNumber) .Select(cell => { var cellValue = cell.GetValue<string>(); return cellValue.Contains(",") ? $"\"{cellValue}\"" : cellValue; }))));
This is based on @Extragorey's answer
source share