PDA

View Full Version : سوال: نحوه ارسال اطلاعات GridView به Excel



mr.gigil
یک شنبه 18 اردیبهشت 1390, 10:36 صبح
سلام :لبخندساده:

من سوالی در رابطه با نحوه Export کردن اطلاعات GridView به Excel داشتم که در تاپیک ها جستجو کردم و چند تا تاپیک بود که به این موضوع پرداخته بود. اما مشکل من رو برطرف نکردند. و عذرخواهی می کنم که تاپیک تکراری ساختم.

من هیچ اطلاعی درباره این مطلب نداشتم و در اینترنت جستجو کردم و یک سری کد را دیدم.
کد زیر رو استفاده کردم و هیچ پیغام خطایی به من نمی ده اما بعد از اینکه خط به خط کدها اجرا شد هیچ اتفاق دیگری هم نمی افتد. اولا می خوام یکی توضیحی درباره کد زیر بده چون از حالت کپی پست کردن بدون اطلاع اصلا خوشم نمی یاد.

کدهایی که پشت event کلیک دکمه export قرار دارند این است:





string strFileName = "report.xls";
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=" + strFileName);
Response.Charset = "utf-8";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite =
new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();

karim orooji
یک شنبه 18 اردیبهشت 1390, 13:22 عصر
سلام نگاه دوست عزیز جناب راد این کار رو در پروژه ای انجام دادند


اگه یک جستجوی کوچیک بزنی اون برنامه رو پیدای میکنی

L_eskandary
یک شنبه 18 اردیبهشت 1390, 16:19 عصر
سلام
دوست عزیز شما می خواین یه فایل excel ایجاد کنین و اطلاعات داخل گرید ویو رو به اون منتقل کنین ؟
اگه جواب بله هست کد زیر دقیقا همین کار رو مرحله به مرحله انجام می ده از ایجاد فایل اکسل تا ایجاد worksheet و... فک کنم کدها هم خیلی واضح باشن باز اگه موردی بود سوال کنید .


public void ExportToExcell(GridView gr)
{
System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCultu re;
System.Threading.Thread.CurrentThread.CurrentCultu re = new System.Globalization.CultureInfo("en-US");

Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(XlSheetType.xlWorksheet);
Microsoft.Office.Interop.Excel.Worksheet excelWorkSheet =(Worksheet)excelWorkBook.Worksheets[1];
excelWorkSheet.DisplayRightToLeft = true;

int ClmCount = gr.Columns.Count;
Range[] rng = new Range[ClmCount];

for (int i = 0; i < ClmCount; i++)
{
string CellAddress = Convert.ToString(Convert.ToChar(Convert.ToByte(i+6 5)))+"1";
rng[i] = excelWorkSheet.get_Range(CellAddress, CellAddress);
rng[i].Value2 = gr.Columns[i].HeaderText;

}


int j = 2;

foreach (GridViewRow grdr in gr.Rows)
{
for (int k = 0; k < ClmCount; k++)
{
string CellAddress = Convert.ToString(Convert.ToChar(Convert.ToByte(k + 65))) +j.ToString();
rng[k] = excelWorkSheet.get_Range(CellAddress, CellAddress);
rng[k].Value2 = grdr.Cells[k].Text.ToString();

}
j++;
}

excelApp.Visible = true;

}