PDA

View Full Version : سوال: خطا هنگام اکسپورت دیتاست به فایل اکسل



bita_naz
سه شنبه 10 شهریور 1394, 20:03 عصر
سلام دوستان

من از تابع زیر که در همین سایت پیدا کردم برای اکسپورت دیتا تیبل ام به فرمت اکسل استفاده میکنم.

public void ExportToExcel(DataGridView dg, DataTable dt)
{
try
{
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(Microsoft.Office.Interop.Ex cel.XlSheetType.xlWorksheet);
Microsoft.Office.Interop.Excel.Worksheet excelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelWor kBook.Worksheets[1];
excelWorkSheet.DisplayRightToLeft = true;

int columnCount = dg.Columns.Count;
Microsoft.Office.Interop.Excel.Range[] rng = new Microsoft.Office.Interop.Excel.Range[columnCount];
// حلقه زیر برای افزودن ردیف اول به فایل اکسل که هدر است میباشد
for (int i = 0; i < columnCount; i++)
{
string cellAddress = Convert.ToString(Convert.ToChar(Convert.ToByte(i + 65))) + "1";
rng[i] = excelWorkSheet.get_Range(cellAddress, cellAddress);
rng[i].Value2 = dg.Columns[i].HeaderText;
}
int j = 2;
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < columnCount; i++)
{
string cellAddress = Convert.ToString(Convert.ToChar(Convert.ToByte(i + 65))) + j.ToString();
rng[i] = excelWorkSheet.get_Range(cellAddress, cellAddress);
rng[i].Value2 = dr[i].ToString();
}
j++;
}
excelApp.Visible = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + " خطا در ایجاد فایل اکسل");
}

}

تابع درست کار میکنه ولی وقتی تعداد رکوردها بیشتر از 2000 تا میشه پیغام خطای زیر رو میده

Exception from HRESULT: 0x800A03EC

لطفا راهنمایی کنید چکار کنم

اگر کامپوننت خوبی برای کار با فایلهای اکسل میشناسید لطفا معرفی کنید

با تشکر:لبخندساده:

دلتنگ اسمان
سه شنبه 10 شهریور 1394, 21:12 عصر
با سلام
توی این لینک (http://www.codeproject.com/Tips/659666/Export-very-large-data-to-Excel-file)مدعی شده تا 700000 رکورد رو در اکسل میریزه.