PDA

View Full Version : خروجی به اکسل گرید؟



نیما حتمی
یک شنبه 04 اردیبهشت 1390, 14:00 عصر
با سلام
دوستان کسی کامپوننتی یا سورس کامل بدون bug داره برای خروجی گرفتن گرید به اکسل

لازم به ذکر است من بالای 20 سورس از اینترنت گرفتم واسه این موضوع ولی هر کدوم مشکلات زیادی داشتن.لطفا تست شده باشه دوستان

با تشکر

نیما حتمی
دوشنبه 05 اردیبهشت 1390, 08:17 صبح
یعنی کسی نیست تو این سایت که کمکی کنه؟

zahra111
دوشنبه 05 اردیبهشت 1390, 13:06 عصر
1- در References باید Microsoft Excel 12.0 Object Library رو از سربرگ Com اضافه کنید// برای office 2007
2- using Microsoft.Office.Interop.Excel;
3-کد :


private void btnExportToExcel_Click(object sender, EventArgs e)
{

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 excelBook=
excelApp.Workbooks.Add(XlSheetType.xlWorksheet);
Microsoft.Office.Interop.Excel.Worksheet excelWorkSheet=
(Worksheet)(excelBook.Worksheets[1]);
excelWorkSheet.DisplayRightToLeft = true;
//
int clmCnt = dataGridView1.Columns.Count;
Range[] rng = new Range[clmCnt];

//
for (int x = 0; x < clmCnt; x++)
{
string celladdress =
Convert.ToString(Convert.ToChar(Convert.ToByte(x+6 5)))+"1";
rng[x] = excelWorkSheet.get_Range(celladdress, celladdress);
rng[x].Value2=dataGridView1.Columns[x].HeaderText;
}

int j=2;
foreach(DataGridViewRow r in dataGridView1.Rows)
{
for(int k=0;k<clmCnt;k++)
{
string celladdress =
Convert.ToString(Convert.ToChar(Convert.ToByte(k+6 5)))+
j.ToString();
rng[k] = excelWorkSheet.get_Range(celladdress, celladdress);
rng[k].Value2 = r.Cells[k].Value.ToString();

}

j++;
}
excelApp.Visible = true;


}

raminsalemi
دوشنبه 05 اردیبهشت 1390, 13:40 عصر
با سلام این نمونه کد مشکلت رو حل می کنه

نیما حتمی
دوشنبه 05 اردیبهشت 1390, 14:24 عصر
با تشکر از پاسخ شما دوستان

این کد هایی که شما گذاشتین با DATATABLE سازگار نیستند و از DATATABLE ایراد می گیره من برای پر کردن گریدم ار DATATABLEاستفاده کردم

نیما حتمی
دوشنبه 05 اردیبهشت 1390, 14:28 عصر
69139
اینم اررورها یی که می ده

zahra111
سه شنبه 06 اردیبهشت 1390, 07:00 صبح
قسمتی که از DataTable برای پر کردن Grid استفاده کردی به جای DataTable بنویس System.Data.DataTable

نیما حتمی
سه شنبه 06 اردیبهشت 1390, 08:21 صبح
این کار رو کردم همون اول جواب نداد اومدم به جای تعریفusing Microsoft.Office.Interop.Excel namespace اون بالا هر جا که نیاز بود تعریف کردم حل شد.منظورم

یازم ممنونم از راهنماییتون