ارسال اطلاعات DataGrid به اکسل در سی شارپ
با سلام
با یکی دیگه از مقالات آموزش کار با WPF در سی شارپ از وب سایت Aspcore.ir در خدمت شما دوستان عزیز هستم. یکی از قابلیت هایی که اکثر برنامه نویسان به اون احتیاج پیدا می کنن ارسال اطلاعات DataGrid به اکسل در سی شارپ هست. چون بسیاری از افراد انتقال اطلاعاتشون به اکسل و کار با داده ها در اکسل بسیار براشون مهم هست.
یکی از کنترلهای موجود در WPF همون جدول یا DataGrid هستش. در DataGrid شما می تونید لیستی از اطلاعات را مشاهده بفرمایید و عملیات لازم رو روی اون انجام بدید.
اما در ادامه مقاله ارسال اطلاعات DataGrid به اکسل در سی شارپ ببینیم چجوری می تونیم اطلاعات موجود در DataGrid رو به اکسل ارسال کنیم.
فرض کنید یک اپلیکیشن با WPF دارید که درون آن یک DataGrid وجود دارد که شامل یکسری اطلاعات می باشد. حال می خواهیم با کلیک کردن بر روی یک دکمه اطلاعات موجود در این DataGrid به اکسل انتقال پیدا کند.
در ادامه مقاله ارسال اطلاعات DataGrid به اکسل در سی شارپ یک تصویر را مشاهده می کنید که مربوط به یکی از پروزه هام هست :
همانطور که مشاهده می فرمایید یک DataGrid داریم با یکسری اطلاعات و یک دکمه ارسال به اکسل در بالای DataGrid
حال با چه کدی اطلاعات DataGrid را به اکسل ارسال کنیم.
در ادامه مقاله ارسال اطلاعات DataGrid به اکسل در سی شارپ نمونه کد لازم برای انجام این کار را مشاهده می فرمایید.
قبل از اینکه نمونه کدها را بنویسیم دقت نمایید که رفرنس زیر را به پروزه خود اضافه نمایید :
Microsoft.Office.Interop.Excel
پس از اضافه کردن رفرنس بالا کتابخانه های زیر را در بالای کلاس خود استفاده نمایید :
;using Excel = Microsoft.Office.Interop.Excel
;using Microsoft.Office.Interop.Excel
و در ادامه در رویداد Click از کنترل Buttun می توانید از این کدها استفاده نمایید :
private void btn_exporttoexcel_Click(object sender, RoutedEventArgs e)
}
ارسال اطلاعات از جدول به اکسل//
;()Excel.Application excel = new Excel.Application
;excel.Visible = true
;Workbook workbook = excel.Workbooks.Add(System.Reflection.Missing.Value)
;Worksheet sheet1 = (Worksheet)workbook.Sheets[1]
;Excel.Range range
;Excel.Range myRange
for (int i = 0; i < dataGrid.Columns.Count – 3; i++)
}
range = (Excel.Range)sheet1.Cells[1, i + 1];
sheet1.Cells[1, i + 1].Font.Bold = true;
range.Value = dataGrid.Columns[i].Header;
for (int j = 0; j < dataGrid.Items.Count; j++)
}
;TextBlock b = dataGrid.Columns[i].GetCellContent(dataGrid.Items[j]) as TextBlock
;myRange = sheet1.Cells[j + 2, i + 1]
;myRange.Value = b.Text
{
{
{
سلام استاد
وقت بخیر
این دستور برای تعداد محدود خوب هستش
ولی اگه تعداد ردیف های زیاد باشه (مثلا ۳۰۰۰ ردیف) چطور باید اطلاعات ذخیره کنیم در اکسل.
ممنون
سلام دست شما درد نکنه زحمت کشیدید. یک سوال داشتم حالا گه بخوایم همین اطلاعات رو از اکسل بخونیم باید چیکارکنیم
خدا خیرت بده
عالی بود
کلی دنبالش گشته بودم
با سلام
خواهش میکنم
برای حمایت از ما سایت رو به دوستاتون معرفی کنید
متشکرم
سلام
اگه ممکنه از این آموزشتون یک فیلم تهیه کنید واقعا ممنون میشم
T.ME/AmirStreamer
https://aparat.com/amirkh001
ممنون میشم اگه پیام بدین یا به پی ویم بفرستین
با سلام
این آموزش در مورد افزودن فونت به ویندوز هست
آموزش خاصی نمیخواد
هر فونتی که میخواید رو در پوشه fonts در control panel کپی و پیست بفرمایید
موفق باشید
عالی بود توضیحتون