difinmathew
September 27th, 2006, 01:52 AM
Hi All,
When I Export DataGrid to Excel ,the DataGrid contains pound symbol(£).But After exporting the data to excel an unwanted character  comes prefixing the pound symbol.
can anyone please help me in eleminating the unwanted symbol.
I am attaching the code which i used for exporting.
Thank You
Reagrds,
Diffin
Ihe first step is to insert a <div > that embeds the entire Nested GridView:
<div id="divNestedGrid" runat="server">
<asp:GridView id=.. >
...
<asp:GridView .... />
---
</asp:GridView>
</asp:GridView>
</div>
Next step is add a hidden variable in the same aspx form.
<input type="hidden" id="hdnInnerHtml" value="" runat="server" />
Now add a javascript function that in the aspx that fills the hidden variable with the inner html of the div.
function getInnerHtml()
{
var element = document.getElementById("divpreview");
var store = document.getElementById("hdnInnerHtml");
//add the css styles you have used inside the nested GridView
var css = "<style type=\"text/css\" id=\"style1\">.textbold {font-family: Arial, Helvetica, sans-serif;font-size: 11px;color: #000000;font-weight: bold;text-decoration: none;}.row1 {background-color: #FFFFFF; font-family: Arial, Helvetica, sans-serif;font-size: 11px;color: #000000;height: 18px;padding-left: 5px;}.;
store.value = css + element.innerHTML;
}
Now in the Code Behind, first add the javascript function to be triggered on the click on the Export button.
btnExport.Attributes.Add("OnClick", "getInnerHtml();");
Finally, write the following code in the Export Button click event, to Export to Excel:
string html = hdnInnerHtml.Value;
Response.Cache.SetExpires(DateTime.Now.AddSeconds(1));
Response.Clear();
Response.AppendHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.ms-excel";
this.EnableViewState = false;
Response.Write("\r\n");
Response.Write(html);
Response.End();
When I Export DataGrid to Excel ,the DataGrid contains pound symbol(£).But After exporting the data to excel an unwanted character  comes prefixing the pound symbol.
can anyone please help me in eleminating the unwanted symbol.
I am attaching the code which i used for exporting.
Thank You
Reagrds,
Diffin
Ihe first step is to insert a <div > that embeds the entire Nested GridView:
<div id="divNestedGrid" runat="server">
<asp:GridView id=.. >
...
<asp:GridView .... />
---
</asp:GridView>
</asp:GridView>
</div>
Next step is add a hidden variable in the same aspx form.
<input type="hidden" id="hdnInnerHtml" value="" runat="server" />
Now add a javascript function that in the aspx that fills the hidden variable with the inner html of the div.
function getInnerHtml()
{
var element = document.getElementById("divpreview");
var store = document.getElementById("hdnInnerHtml");
//add the css styles you have used inside the nested GridView
var css = "<style type=\"text/css\" id=\"style1\">.textbold {font-family: Arial, Helvetica, sans-serif;font-size: 11px;color: #000000;font-weight: bold;text-decoration: none;}.row1 {background-color: #FFFFFF; font-family: Arial, Helvetica, sans-serif;font-size: 11px;color: #000000;height: 18px;padding-left: 5px;}.;
store.value = css + element.innerHTML;
}
Now in the Code Behind, first add the javascript function to be triggered on the click on the Export button.
btnExport.Attributes.Add("OnClick", "getInnerHtml();");
Finally, write the following code in the Export Button click event, to Export to Excel:
string html = hdnInnerHtml.Value;
Response.Cache.SetExpires(DateTime.Now.AddSeconds(1));
Response.Clear();
Response.AppendHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.ms-excel";
this.EnableViewState = false;
Response.Write("\r\n");
Response.Write(html);
Response.End();