مانده تا پایان تخفیف ۳۰ درصدی آموزش های ویدئویی سایت (کلیک کنید)

وارد کردن فایل اکسل در دیتاگریدویو

یک پروژه ویندوزی مانند شکل زیر ایجاد کنید :

3

یک فایل اکسل در پوشه bin پروژه با نام Book1.xlsx قرار دهید.
در قسمت SolutionEplorer بر روی راست کلیک  refrence  و سپس بر روی Add Refrences کلیک کنید :

1

یک پنجره به صورت زیر باز می شود ، مسیرهای نمایش داده شده را طی کنید :

2

حال به محیط کدنویسی رفته و کدهای زیر را کپی کنید:

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);
        }
    }
}

برنامه را اجرا و نتیجه را مشاهده کنید :

4

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. ghasem110deh پاسخ دادن

    سلام
    بعد میشه اطلاعات ورودی رو مستقیم تو بانک اکسس یا sql ذخیره کرد ؟

  2. ghasem110deh پاسخ دادن

    سلام … آقا یونس واسه من تو این خط :

    this.dataGridView1.Columns.Add(xlWorksheet.Cells[1, columnCounter].Value2, xlWorksheet.Cells[1, columnCounter].Value2);

    از Value2 ها خطا میگیره :

    Error	۱: 'object' does not contain a definition for 'Value2' and no extension method 'Value2' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
  3. سینا پاسخ دادن

    من میخواهم اطلاعات فایل اکسل وارد برنامه ام بشه یعنی کاربر مسیر فایل رو خودش انتخاب بکنه؟حالا از بانک چجوری وارد اکسل کنم؟؟؟؟؟؟؟؟

  4. اكبر قره باغي پاسخ دادن

    سلام و بسیار ممنون از سایت خوبتون.

    من میخوام زمانیکه از اکسل اطلاعات وارد DataGridView میکنم دیگه سطون هایی رو که در وجود DataGridView داره رو دوباره نسازه!

    به نظرم باید یک if در اولین for که مربوط به ساختن سطون هاست بگذاریم!
    امــــــا چطوری؟

    ممنون میشم راهنمایی کنید

  5. مهدی پاسخ دادن

    این مسیری را که فرمودید در ویندوز۷ رفتم و برنامه اجرا شد ولی همین برنامه در ویندوز ۸ خطا می دهد
    در ویندوز ۸ بایستی چه مسیری را برویم

    • یونس ابراهیمی پاسخ دادن

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

  6. شبنم پاسخ دادن

    با سلام این برنامه رو وقتی به صورت تنها اجرا میکنم مشکلی نداره ولی وقتی میخوام همین کد رو تو برنامه خودم استفاده کنم از Value2 ایراد میگیره مشکلش چیه؟

  7. مرتضی پاسخ دادن

    سلام میشه توضیح کد ها رو هم بزارین یا اگه جایی هست کمک کنین چون من برایه پروژم میخوام باید استفاده ازش رو یاد بگیرم

  8. akakala پاسخ دادن

    سلام

    دمتون گرم

    خیلی خیلی خیلی خیلی ممنونم

    خدا خیرتون بده

    • یونس ابراهیمی پاسخ دادن

      لطف دارین دوست عزیز
      ممنون میشم سایت رو به دوستاتون معرفی بفرمایید

  9. رضا مردی پاسخ دادن

    خیلی ممنون از راهنماییتون