I have below code to generate an excel file. Excel file generate successfully. But columns are in default width. I want to adjust the column to match the width of the content.
private void CreateExcelFile()
{
DataTable dt = BindFoodOrderToGrid(txtDate.Text);
if (dt.Rows.Count > 0)
{
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "Customers.xls"));
Response.ContentType = "application/ms-excel";
string[] visibleColumns = { "food_type", "qty", "call_name", "Mobile" };
// Set visibility for each column
RemoveUnwantedColumns(dt, visibleColumns);
dt.Columns["food_type"].ColumnName = "Food Type";
dt.Columns["qty"].ColumnName = "Qty";
dt.Columns["call_name"].ColumnName = "Employee";
// Specify the columns you want to make visible
dt.AcceptChanges();
dt.Columns["Employee"].SetOrdinal(0);
dt.Columns["Food Type"].SetOrdinal(1);
dt.Columns["Qty"].SetOrdinal(2);
dt.Columns["Mobile"].SetOrdinal(3);
string str = string.Empty;
foreach (DataColumn dtcol in dt.Columns)
{
Response.Write(str + dtcol.ColumnName);
str = "\t";
}
Response.Write("\n");
foreach (DataRow dr in dt.Rows)
{
str = "";
for (int j = 0; j < dt.Columns.Count; j++)
{
Response.Write(str + Convert.ToString(dr[j]));
str = "\t";
}
Response.Write("\n");
}
Response.End();
}
}
I tried
dt.Columns["food_type"].ColumnName = " Food Type";
dt.Columns["food_type"].ColumnName = "@nbsp;@nbsp;Food Type";
But nothings working.

I tried to create a simple demo by using the nuget package : ClosedXML but I am not able to run it. The way of adjusting the width of columns is that :