PDA

View Full Version : سوال: import کردن gridview در excel یا file



mehrdad85
دوشنبه 27 دی 1389, 07:32 صبح
سلام
mمن یه gridview دارم که میخوام اطلاعات اون به داخل یه فایل متنی و یا اکسل فرستاده بشه
کسی میتونه کمکم کنه؟



ممنون

hlikehamed
سه شنبه 28 دی 1389, 16:38 عصر
سلام دوست عزیز. از این قطعه کد می تونی استفاده کنی :


private void ExportGridView(GridView gvv)
{

string attachment = "attachment; filename=Contacts.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gvv.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();

}


کافیه گرید رو به این تابع بفرستی.
البته بهتره قبل این کار اطلاعات رو داخل یک گرید جدید بریزی. (به خاطر paging و ...) بعد گرید جدید رو به این تابع پاس بدی.
یه کار دیگه هم که می تونی انجام بدی اینه که تابعی بنویسی اول اطلاعات موجود توی گرید رو از بانک بخونه بعد اون اطلاعات رو بایند کنی توی یه گرید توی بیهاند کد بعد تابع بالا رو فراخونی کنی.

به هر حال امیدوارم موفق باشی.

در ضمن :


using System.IO;

فراموش نشه

mehrdad85
سه شنبه 19 بهمن 1389, 09:50 صبح
سلام

بابت راهنماییت ممنون دوست عزیز

میشه یه نمونه یا sample اگه در دسترس داری واسم بذاری؟
داخل behind code چطوری اطلاعات را بخونم و یه gridview جدید بسازم ؟
من واقعیت حرفه ای نیستم

ممنون میشم
مرسی

nassim0
چهارشنبه 11 اسفند 1389, 10:50 صبح
سلام ببخشید من این قسمت رو متوجه نمی شم
کافیه گرید رو به این تابع بفرستی.
یعنی چطوری

asif1358
پنج شنبه 12 اسفند 1389, 03:12 صبح
دوست گرامی!
کنار گریدویو خود یک دکمه قرار داده و کد آن را این گونه بنویسید (در این مثال گریدویو شامل اطلاعات پایان نامه ها است):


protected void btnExcell_Click(object sender, EventArgs e)
{
try
{
if (GridView1.Rows.Count < 1)
return;
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.ContentType = "application/vnd.ms-excel";
StringBuilder sb = new StringBuilder();
sb.Append("<html dir='rtl'><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'></head><body><table cellpadding='2' style='border-collapse:collapse; width:100%'>");
sb.Append("<tr style='font-family:Lotus; background-color:#025665; font-weight:bold; color:#ffffff'><td>عنوان</td><td>نگارنده</td><td>استاد راهنما</td><td>استاد مشاور</td></tr>");
foreach (GridViewRow r in GridView1.Rows)
{
if ((r.RowIndex % 2) == 0)
sb.Append("<tr style='font-family:Lotus; background-color:#d9efec'><td>" + r.Cells[1].Text + "</td><td>" + r.Cells[2].Text + "</td><td>" + r.Cells[3].Text + "</td><td>" + r.Cells[4].Text + "</td></tr>");
else
sb.Append("<tr style='font-family:Lotus; background-color:#ffffff'><td>" + r.Cells[1].Text + "</td><td>" + r.Cells[2].Text + "</td><td>" + r.Cells[3].Text + "</td><td>" + r.Cells[4].Text + "</td></tr>");
}
sb.Append("</table></body></html>");
Response.Write(sb.ToString());
Response.End();
}
catch (Exception ex)
{


}
}


اما یادتان باشد که این متد خالی را نیز در کد خود قرار دهید:


public override void VerifyRenderingInServerForm(Control control)
{

}