Give background color to excel sheet in asp.net

China☆狼群 提交于 2020-01-13 18:56:10

问题


I am performing export to excel in asp.net without using any third party controls. How can i give background color to my exported excel sheet?

The background color may (not sure) be different according to some cells range. Say from Cell 0- 5 (Cell A-E in excel) is red color, 6-12 is green and so on and so forth.

How can i achieve the same?

public static void DataSetToExcel(System.Data.DataSet dtExport, System.Web.HttpResponse response, string strFileName)
{
    //Clean up the response Object
    response.Clear();
    response.Charset = "";

    //Set the respomse MIME type to excel
    response.ContentType = "application/vnd.ms-excel";

    //Opens the attachment in new window
    response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName.ToString() + ".xls;");
    response.ContentEncoding = Encoding.Unicode;
    response.BinaryWrite(Encoding.Unicode.GetPreamble());

    //Create a string writer
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();

    //Create an htmltextwriter which uses the stringwriter
    System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);

    //Instantiate the datagrid

    System.Web.UI.WebControls.GridView dgrExport = new System.Web.UI.WebControls.GridView();

    //Set input datagrid to dataset table
    dgrExport.DataSource = dtExport.Tables[0];

    //bind the data with datagrid
    dgrExport.DataBind();

    //Make header text bold
    dgrExport.HeaderStyle.Font.Bold = true;

    //bind the modified datagrid
    dgrExport.DataBind();

    //Tell the datagrid to render itself to our htmltextwriter
    dgrExport.RenderControl(htmlWrite);

    //Output the HTML
    response.Write(stringWrite.ToString());


    response.End();
}

回答1:


In the HTML definition for Excel there seems to be way though I didn't try it, see http://www.c-sharpcorner.com/UploadFile/kaushikborah28/79Nick08302007171404PM/79Nick.aspx and check the official documentation (help file about HTML for Excel) at http://msdn.microsoft.com/en-us/library/Aa155477%28office.10%29.aspx

Better alternative for creating Excel files is to use for example OpenXML from Microsoft (free library) see http://msdn.microsoft.com/en-us/office/bb265236 and http://openxmldeveloper.org/




回答2:


Can you just set the item style of the columns, like this:

GridView1.Columns[0].ItemStyle.BackColor = Color.PeachPuff;
GridView1.Columns[1].ItemStyle.BackColor = Color.Red;



回答3:


I have seen lot of blogs where people wants to change the back ground color of excel sheet. Here is the solution (Working). Please try this.

Below listed code will change the back ground & foreground color of your excel sheet and the data whatever you have exported to the excel.

    Response.Write("<HTML><HEAD>");
    Response.Write("<style> BODY { background-color:lightyellow; } TD { background-color:lightgrey; } </style>");        
    Response.Write("</HEAD><BODY>");        
    Response.Write(stringWrite.ToString());
    Response.Write("</BODY></HTML>");
    Response.End();




回答4:


//Make header text bold

 dgrExport.HeaderStyle.Font.Bold = true;
 dgrExport.HeaderStyle.BackColor = Color.Black;                            
 dgrExport.HeaderStyle.ForeColor = Color.White;


来源:https://stackoverflow.com/questions/7172282/give-background-color-to-excel-sheet-in-asp-net

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!