Export to excel.

E

elangovan.cse

Hi all,
I'm exporting a datagrid to an excel file.
I'm using the following source code to export.
DataTable dt = new DataTable();


DataAccess.StoredProcedure sproc = new
DataAccess.StoredProcedure("sproc_getdata");

sproc.Run(dt);

DataGrid1.DataSource = dt;

DataGrid1.DataBind();

DataGrid1.EnableViewState = false;

DataGrid1.Visible = true;

DataGrid1.GridLines = GridLines.Both;

Response.Clear();

Response.Buffer = true;

Response.AddHeader( "Content-Disposition", "filename=File1.xls");


StringWriter stringWriter = new StringWriter();

HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);

DataGrid1.RenderControl(htmlWriter);

Response.Write(stringWriter.ToString());

Response.ContentType="application/vnd.ms-excel";

Response.End();

Its working fine.

but there is an isuue datagrid dt contains extended language
strings (like chinese, japanese).These strings are not getting
exported to excel .
DataGrid is getting data from SQLServer2005 database. I know that
sqlserver is using utf-16 encoding for unicode character. So i've tried
to change Response.ContentEncoding to utf-16. But it is also not
working.

Can anyone help me.
 
C

Code Monkey

What datatypes are you database columns?
If they are not nvarchars (or similar) you haven't got a hope of
getting the unicode data out.
 
E

elangovan.cse

Code said:
What datatypes are you database columns?
If they are not nvarchars (or similar) you haven't got a hope of
getting the unicode data out.
they are nvarchar only..
The datagrid is showing all the characters..
without the line Response.ContentType="application/vnd.ms-excel"; i'm
getting correct output
 
C

Code Monkey

Just an idea....

I've got similar code in one of my web-apps, but I'm using


<code>


GridView1.DataSource = myDataTable;
GridView1.DataBind();
Response.Clear();

Response.AddHeader("content-disposition",
"attachment;filename=myFileName.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.xls";
StringWriter stringWrite = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();

</code>

Works everytime for me!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top