PDA

View Full Version : آموزش: قرار دادن اطلاعات از DataGridView در فایل اکسل



Hkarimi
چهارشنبه 26 تیر 1392, 13:55 عصر
سلام. اسم تاپیک گویای همه چیزه. بدون مقدمه بریم سراغ کد.
این یه تابعه که توی یکی از برنامه های خودم ازش استفاده کردم...



public void ExportToExcel(DevComponents.DotNetBar.Controls.Dat aGridViewX DataGridView, 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 = dataGridViewX1.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 = dataGridViewX1.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 + " خطا در ایجاد فایل اکسل");
}

}

همونطور که میبینید این تابع 2 تا ورودی داره که اولیش از نوع DataGridView و دومیه از نوع DataTableه. چون که نیاز داشتم برنامه رو اینجوری نوشتم شما میتونید به دلخواه خودتون تغییرش بدید. این تابع میاد و سطر اول دیتا گرید رو به عنوان هدر فایل اکسل (یا همون سطر اولش) در نظر میگیره و تمام سطرهای DataTable رو توی بقیه سطرهای فایل اکسل میریزه و در نهایت هم فایل اکسل رو باز میکنه و به کاربر نشون میده. از همین جمله آخرم میشه فهمید که اکسل باید روی سیستم کاربر نصب باشه.

اگه مفید بود شما بهتر از من میدونید که باید چکار کنید...