تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
استيراد ملف اكسل الى DataGridView
#1
Import Excel File To DataGridView
Table By Table Or Sheet By Sheet
استيراد بيانات ملف اكسل الى DataGridView
جدول جدول او ورقة ورقة
باستخدام المكتبة ExcelDataReader
Using ExcelDataReader

بســـــم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته

توجد العديد من الطرق لكيفية القراءة و الكتابة الى ملفات اكسل و بعضها لا يحتاج الى مكاتب خارجية , هذه المقالة تتحدث عن استخدام مكتبة خارجية بسيطة و مجانية و سهلة الاستخدام.

في البداية تحتاج الى انشاء مشروع جديد يحتوي على فورم واحد فقط , و نضع عليه الادوات التالية

  • DataGridView - نسميها Dgv
  • ComboBox1
  • Button نسميه btnOpen

الان نذهب الى Solution Explorer  و بيمين الماوس نضغط و من القائمة الظاهرة نختار NuGet Packages
و نتابع كما بالصورة



في اعلى الفورم نعرف DataSet ،سميها Result

PHP كود :
   Dim Result As New DataSet 
بعد ذلك و في حدث الضغط على الزر لفتح ملفات من النوع Excel

PHP كود :
       Result.Clear()
 
       Dgv.DataSource Nothing

        Using Ofd 
As New OpenFileDialog()

 
           With Ofd
                
.Filter "Excel 2003|*.xls|Excel 2007|*.xlsx"
 
               .ValidateNames True
            End With

            If Ofd
.ShowDialog DialogResult.OK Then
                Dim fs 
As IO.FileStream IO.File.Open(Ofd.FileNameIO.FileMode.OpenIO.FileAccess.Read)
 
               Dim Reader As Excel.IExcelDataReader

                If Ofd
.FilterIndex 1 Then
                    Reader 
Excel.ExcelReaderFactory.CreateBinaryReader(fs)
 
               Else
                    Reader 
Excel.ExcelReaderFactory.CreateOpenXmlReader(fs)
 
               End If

 
               Reader.IsFirstRowAsColumnNames True
                Result 
Reader.AsDataSet()
 
               ComboBox1.Items.Clear()

 
               For Each Dt As DataTable In Result.Tables
                    ComboBox1
.Items.Add(Dt.TableName)
 
                   Reader.Close()
 
               Next

            End 
If

 
       End Using 
و لانني اريد التعامل مع كل ورقة على حدا لذا ساقوم بتحميل اسماء الاوراق كجداول الى ComboBox 
و من ثم اسناد كائن DataGridView الى الجدول المحدد
PHP كود :
   Private Sub ComboBox1_SelectedIndexChanged(sender As ObjectAs EventArgsHandles ComboBox1.SelectedIndexChanged
        Dgv
.DataSource Result.Tables(ComboBox1.SelectedIndex)
 
   End Sub 


المكتبة موجودة مع المثال المرفق
بالتوفيق للجميع


الملفات المرفقة
.rar   XlsTest VS2015.rar (الحجم : 1.19 م ب / التحميلات : 1,488)
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}


الردود في هذا الموضوع
استيراد ملف اكسل الى DataGridView - بواسطة ابو ليلى - 21-01-17, 08:19 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة تقسيم كمية عرض البيانات داخل الأداة ( DataGridView ) أو مايسمى بالـ ( Paging ) MR Dev Boody 4 6,825 02-06-16, 12:41 PM
آخر رد: CLARO
  طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! MR Dev Boody 1 5,540 12-11-12, 06:45 PM
آخر رد: ابو ابراهيم

التنقل السريع :


يقوم بقرائة الموضوع: