PDA

View Full Version : مشکل در Eport کردن داده ها به Excell



minamorsali
پنج شنبه 26 مرداد 1391, 09:10 صبح
سلام
من برای تبدیل داده هام از بانک اطلاعاتی به اکسل از تابع زیر استفاده میکنم:


public void ExportTableData(DataTable dtdata)
{
string attach = "attachment;filename=journal.xls";
Response.ClearContent();
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = Encoding.Unicode;
Response.Charset = System.Text.Encoding.GetEncoding(Thread.CurrentThr ead.CurrentCulture.TextInfo.ANSICodePage).BodyName ;
Response.AddHeader("content-disposition", attach);
if (dtdata != null)
{
foreach (DataColumn dc in dtdata.Columns)
{
Response.Write(dc.ColumnName + "\t");
//sep = ";";
}
Response.Write(System.Environment.NewLine);
foreach (DataRow dr in dtdata.Rows)
{
for (int i = 0; i < dtdata.Columns.Count; i++)
{
Response.Write(dr[i].ToString() + "\t");



//Unicode Types
//byte[] converted = System.Text.Encoding.GetEncoding("utf-8").GetBytes(dr[i].ToString());
//Response.BinaryWrite(converted);
//Response.Write("\t");
}
Response.Write("\n");
}
Response.End();
}
}

اما با اینکه اینکدینگ رو utf-8 گذاشتم بازم داده های فارسیمو خراب میکنه. خیلی راهها رو امتحان کردم اما بازم مشکل حل نشد.
داده هام در پایگاه داده nvarchar هست. توی صفحه متا تگ utf-8 اضافه کردم. اما مشکل حل نشد.

جالب اینجاست که همین تابع توی یه بانک اطلاعاتی دیگه برای داده های nvarchar مشکلی نداره. و اینکه داده های بانک اطلاعاتی مذکور موقع تبدیل به اکسس با یه روش دیگه مشکل نداره و داده ها درست هستن اما با این تابع و خروجی اکسل این مشکل پیش میاد.
دوستان راه حل چیه ؟ چطور این مشکل رو حل کنم؟

با تشکر