PDA

View Full Version : اشکال در فرستادن محتویات Datagridview به Excel



babak_bsn
چهارشنبه 10 بهمن 1386, 13:26 عصر
سلام دوستان
من میخوام که اطلاعات نشان داده شده توی Datagrid رو توی اکسل نشون بدم کدمم اینه

Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Visible = true;
excel.UserControl = true;
System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCultu re;
System.Threading.Thread.CurrentThread.CurrentCultu re = new System.Globalization.CultureInfo("en-US");
excel.Workbooks.Add(true);
System.Threading.Thread.CurrentThread.CurrentCultu re = oldCI;
System.Data.DataTable tbl = ds.Tables[0];
int cindex = 0;
foreach (DataColumn col in tbl.Columns)
{
cindex++;
excel.Cells[1, cindex] = col.ColumnName.ToString();
}
int rindex = 0;
foreach (DataRow row in tbl.Rows)
{
rindex++;
cindex = 0;
foreach (DataColumn col in tbl.Columns)
{
cindex++;
excel.Cells[rindex + 1, cindex] = row[col.ColumnName].ToString();
}
}
excel.Save("Bastan.xls");
excel.Workbooks.Close();
,و من توی این خط کد

excel.Cells[0,cindex]= col.ColumnName.ToString();

با این error مواجه میشم
Exception from HRESULT: 0x800A03EC

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

Masoud_TB
چهارشنبه 10 بهمن 1386, 14:16 عصر
دوست عزیز شما باید ابتدا Cell ها رو ایجاد کنی و سپس مقدار بهشون بدی:


WorksheetCell cellDate = new WorksheetCell("Date");
cellDate.MergeAcross = 1;
row.Cells.Add(cellDate);

babak_bsn
چهارشنبه 10 بهمن 1386, 19:38 عصر
ممنون آقای طباطبایی
ولی من اصلا کلاس WorksheetCell نمیتونم فراخوانی کنم،یعنی نمیبینمش.:ناراحت:

خب مگه خود excel.cell به خونه های excel اشاره نمیکنه؟دیگه چرا باید cell رو بسازیم

Sub Zero
چهارشنبه 15 اسفند 1386, 17:31 عصر
احتمالا تا حالا آقا بابک خودشون جواب رو پیدا کردن و شاید کمی برای جواب دادن دیر شده باشه اما راه حل رو برای کسایی مینویسم که ممکنه بعدا با این مشکل رو به رو بشن :
جواب شما اینه که اکسل اصلا سطر صفر یا ستون صفر نداره . کدتون رو به این صورت تغییر بدین :

excel.Cells[1,cindex+1]= col.ColumnName.ToString();
همین.

nasr
پنج شنبه 23 اسفند 1386, 10:34 صبح
احتمالا تا حالا آقا بابک خودشون جواب رو پیدا کردن و شاید کمی برای جواب دادن دیر شده باشه اما راه حل رو برای کسایی مینویسم که ممکنه بعدا با این مشکل رو به رو بشن :
جواب شما اینه که اکسل اصلا سطر صفر یا ستون صفر نداره . کدتون رو به این صورت تغییر بدین :

excel.Cells[1,cindex+1]= col.ColumnName.ToString();همین.

حتی با این تغییر در کد هم همون Error را میده