PDA

View Full Version : کاراکتر های نا مفهوم هنگام تولید فایل Excel



مهدی رحیم زاده
یک شنبه 10 فروردین 1393, 00:10 صبح
سلام خدمت همه اساتید محترم
بنده با استفاده از این کد دارم داده های یک دیتا تیبل رو به فایل اکسل تبدیل میکنم :
HttpContext.Current.Response.Clear();
//HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"; // "application/ms-excel";
//HttpContext.Current.Response.Write(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">");
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=Reports.xls");


HttpContext.Current.Response.Charset = "windows-1254"; // utf-8
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
HttpContext.Current.Response.Write(Encoding.Unicod e.GetPreamble());
// HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Unicode; //System.Text.Encoding.GetEncoding("utf-8");
//sets font
HttpContext.Current.Response.Write("<font style='font-size:10.0pt; font-family:tahoma;'>");
//HttpContext.Current.Response.Write("<BR><BR><BR>");
//sets the table border, cell spacing, border color, font of the text, background, foreground, font height
HttpContext.Current.Response.Write("<Table border='1' bgColor='#ffffff' " +
"borderColor='#000000' cellSpacing='0' cellPadding='0' " +
"style='font-size:10.0pt; font-family:arial; background:white;'> <TR>");
//am getting my grid's column headers
int columnscount = dt1.Columns.Count;

for (int j = 0; j < columnscount; j++)
{
//write in new column
HttpContext.Current.Response.Write("<Td>");
//Get column headers and make it as bold in excel columns
HttpContext.Current.Response.Write("<B>");
HttpContext.Current.Response.Write(dt1.Columns[j].ColumnName.Trim());
HttpContext.Current.Response.Write("</B>");
HttpContext.Current.Response.Write("</Td>");
}
HttpContext.Current.Response.Write("</TR>");
foreach (DataRow row in dt1.Rows)
{
//write in new row
HttpContext.Current.Response.Write("<TR>");
for (int i = 0; i < dt1.Columns.Count; i++)
{
HttpContext.Current.Response.Write("<Td>");
HttpContext.Current.Response.Write(row[i].ToString());
HttpContext.Current.Response.Write("</Td>");
}

HttpContext.Current.Response.Write("</TR>");
}
HttpContext.Current.Response.Write("</Table>");
HttpContext.Current.Response.Write("</font>");
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
HttpContext.Current.Response.End();
اما کاراکتر های فارسی رو به صورت نا مفهوم نمایش میده :
±Ú©Ù†Ø§Ù† شرکت تکتØ
دوستان تا حالا به این مشکل برخورد نکردن؟
ممنون میشم اگر راهکاری دارن
با تشکر

مهدی رحیم زاده
پنج شنبه 14 فروردین 1393, 10:11 صبح
این موضوع به تنظیمات IIS بستگی نداره؟

mehrzad_ali
پنج شنبه 14 فروردین 1393, 22:04 عصر
http://barnamenevis.org/showthread.php?442824-%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-excel%D8%A7%D8%B2-gridview

مهدی رحیم زاده
جمعه 15 فروردین 1393, 10:05 صبح
سلام و ممنون بابت جوابتون
من داده ها رو از بانک میخونم و در واقع یک کوئری رو میخوام به فایل اکسل تبدیل کنم. این کدی که نوشتم گاهی اوقات درست جواب میده و گاهی اوقات نه! من در صفحه گرید ویو ندارم میتونید راهنمایی کنید بنده رو که همین کد کجاش میتونه مشکل داشته باشه؟
با تشکر

مهدی رحیم زاده
جمعه 15 فروردین 1393, 22:00 عصر
با سلام خدمت تمامی دوستان عزیز
من مشکل رو تونستم حل کنم
با جایگزین کردن خطوط 10 و 11 کدی که من گذاشتم با این کد ، درست میشه و کارکتر های فارسی درست نمایش داده میشن توی فایل اکسل :
Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1256");
Response.Charset = "windows-1256";
موفق و پیروز باشید