Introduction
In this article, We will learn how to export excel using closed.xml in MVC.
In software applications, for sometimes a user needs to export or import the data in Excel format.
Install Package
ClosedXML.Excel
ClosedXML is used to create Excel files without the Excel application.
The typical example is for creating Excel reports on a web server.
Export Excel
Let’s begin
Creating a new MVC Project and install the ClosedXML.Excel library from Manage NuGet packages.

After the add new HomeController in your project and below code in it.
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
public ActionResult ExportExcel()
{
using (var workbook = new XLWorkbook())
{
//for new sheet
var worksheet = workbook.AddWorksheet("Report");
//set image on header
var imagePath = Server.MapPath("~/Uploads/imagenadmin.jpg");//for image
var image = worksheet.AddPicture(imagePath)
.MoveTo(worksheet.Cell("A1"))
.Scale(0.5);
image.Width = 130;
image.Height = 50;
var imagerange = worksheet.Range("A1:B2");
imagerange.Merge();
//for header name
worksheet.Cell("C1").Value = "Report";
var range = worksheet.Range("C1:E2");
range.Merge().Style.Font.SetBold().Font.FontSize = 14;
worksheet.Range("C1:E2").Row(1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
var currentRow = 3;
worksheet.Cell(currentRow, 1).Value = "Offer #";
worksheet.Cell(currentRow, 2).Value = "Offer Description";
worksheet.Cell(currentRow, 3).Value = "Brand";
worksheet.Cell(currentRow, 4).Value = "Media type";
worksheet.Cell(currentRow, 5).Value = "Face Value";
worksheet.Cell(currentRow, 6).Value = "Offer Type";
worksheet.Cell(currentRow, 7).Value = "Dist. Date";
worksheet.Cell(currentRow, 8).Value = "Exp. Date";
worksheet.Cell(currentRow, 9).Value = "Total Dist. Quantity";
//for add static data
for (int i = 0; i < 9; i++)
{
currentRow++;
worksheet.Cell(currentRow, 1).SetValue(i + 1);
worksheet.Cell(currentRow, 1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right;//for right side value
worksheet.Cell(currentRow, 2).SetValue(i + 1);
worksheet.Cell(currentRow, 3).SetValue(i + 1);
worksheet.Cell(currentRow, 4).SetValue(i + 1);
worksheet.Cell(currentRow, 5).SetValue(i + 1);
worksheet.Cell(currentRow, 6).SetValue(i + 1);
worksheet.Cell(currentRow, 7).SetValue(i + 1);
worksheet.Cell(currentRow, 8).SetValue(i + 1);
worksheet.Cell(currentRow, 9).SetValue(i + 1);
}
// for column
worksheet.Columns().AdjustToContents();
var rango = worksheet.Range("A3:I3"); //Seleccionamos un rango
rango.Style.Border.SetOutsideBorder(XLBorderStyleValues.Thick); //Generamos las lineas exteriores
rango.Style.Border.SetOutsideBorderColor(XLColor.LightGray);
rango.Style.Border.SetInsideBorder(XLBorderStyleValues.Medium);
rango.Style.Border.SetInsideBorderColor(XLColor.LightGray);//Generamos las lineas interiores
rango.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; //Alineamos horizontalmente
rango.Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; //Alineamos verticalmente
rango.Style.Font.FontSize = 12; //Indicamos el tamaño de la fuente
rango.Style.Font.FontColor = XLColor.White;
rango.Style.Fill.BackgroundColor = XLColor.FromHtml("#0F85BA"); //Indicamos el color
using (var stream = new MemoryStream())
{
workbook.SaveAs(stream);
var content = stream.ToArray();
return File(
content,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"Report.xlsx");
}
}
}
and After Create view Index.cshtml and below code in it.
@{
ViewBag.Title = "Home Page";
}
<div class="">
<div class="col-md-12">
<button type="button" class="btn btn-success mt-2" onclick="ExportExcel()">Export Excel</button>
</div>
</div>
<script>
function ExportExcel() {
window.location.href = "/Home/ExportExcel";
}
</script>
Let’s run the application and click to Export Excel button.
Output

Thank you for reading. If you have any doubt please let me know.
Read my previous blogs here.
The post How To Export Excel Using Closed.XML In MVC appeared first on The Code Hubs.