وارد کردن فایل اکسل در دیتاگریدویو
یک پروژه ویندوزی مانند شکل زیر ایجاد کنید :
یک فایل اکسل در پوشه bin پروژه با نام Book1.xlsx قرار دهید.
در قسمت SolutionEplorer بر روی راست کلیک refrence و سپس بر روی Add Refrences کلیک کنید :
یک پنجره به صورت زیر باز می شود ، مسیرهای نمایش داده شده را طی کنید :
حال به محیط کدنویسی رفته و کدهای زیر را کپی کنید:
using System; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void releaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch (Exception ex) { obj = null; MessageBox.Show("Unable to release the Object " + ex.ToString()); } finally { GC.Collect(); } } private void button1_Click(object sender, EventArgs e) { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; Excel.Range range; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(Application.StartupPath + "\\Book1.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); range = xlWorkSheet.UsedRange; for (int columnCounter = 1; columnCounter <= range.Columns.Count; columnCounter++) { this.dataGridView1.Columns.Add(xlWorkSheet.Cells[1, columnCounter].Value2, xlWorkSheet.Cells[1, columnCounter].Value2); } //get the value of each excel cell and put into this variable string str; //Loop counters int rowCounter = 0; int columnCounter2 = 0; for (rowCounter = 2; rowCounter <= range.Rows.Count; rowCounter++) { //Create a new row into the datagridview this.dataGridView1.Rows.Add(); for (columnCounter2 = 1; columnCounter2 <= range.Columns.Count; columnCounter2++) { str = Convert.ToString((range.Cells[rowCounter, columnCounter2] as Excel.Range).Value2); //add the value of excel file into the new row this.dataGridView1.Rows[rowCounter - 2].Cells[columnCounter2 - 1].Value = str; } } xlWorkBook.Close(true, null, null); xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); } } }
برنامه را اجرا و نتیجه را مشاهده کنید :
سلام
من از کد زیر برای خواندن و قرار دادن اطلاعات در دیتا گرید در wpf استفاده کردم ولی متاسفانه چند تا از سلول های وسط ردیف رو نمیخونه اگه کد بهتری دارید یا میتونید این رو اصلاح کنید ممنون میشم
سلام، ممنون میشم سوالتونو تو بخش پرسش و پاسخ سایت مطرح بفرمایید (www.w3-farsi.com/forum)
خیلی ممنون از راهنماییتون
سلام
دمتون گرم
خیلی خیلی خیلی خیلی ممنونم
خدا خیرتون بده
لطف دارین دوست عزیز
ممنون میشم سایت رو به دوستاتون معرفی بفرمایید
سلام میشه توضیح کد ها رو هم بزارین یا اگه جایی هست کمک کنین چون من برایه پروژم میخوام باید استفاده ازش رو یاد بگیرم
با سلام این برنامه رو وقتی به صورت تنها اجرا میکنم مشکلی نداره ولی وقتی میخوام همین کد رو تو برنامه خودم استفاده کنم از Value2 ایراد میگیره مشکلش چیه؟
این مسیری را که فرمودید در ویندوز7 رفتم و برنامه اجرا شد ولی همین برنامه در ویندوز 8 خطا می دهد
در ویندوز 8 بایستی چه مسیری را برویم
سلام دوست عزیز چه خطایی میده .
اگر امکان داره سوالاتتون رو در بخش پرسش و پاسخ سایت بپرسید
با تشکر
سلام و بسيار ممنون از سايت خوبتون.
من ميخوام زمانيكه از اكسل اطلاعات وارد DataGridView ميكنم ديگه سطون هايي رو كه در وجود DataGridView داره رو دوباره نسازه!
به نظرم بايد يك if در اولين for كه مربوط به ساختن سطون هاست بگذاريم!
امــــــا چطوري؟
ممنون ميشم راهنمايي كنيد
من میخواهم اطلاعات فایل اکسل وارد برنامه ام بشه یعنی کاربر مسیر فایل رو خودش انتخاب بکنه؟حالا از بانک چجوری وارد اکسل کنم؟؟؟؟؟؟؟؟
سلام … آقا یونس واسه من تو این خط :
this.dataGridView1.Columns.Add(xlWorksheet.Cells[1, columnCounter].Value2, xlWorksheet.Cells[1, columnCounter].Value2);
از Value2 ها خطا میگیره :
سلام
بعد میشه اطلاعات ورودی رو مستقیم تو بانک اکسس یا sql ذخیره کرد ؟
آره میشه