تقييم الموضوع :
  • 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 م ب / التحميلات : 850)
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد
#2
Merci c'est très intéressant

{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
ساهم دائماً فى تقديم    لكل من يقوم بالمساهمة
فى حل اى مشكلة او استفسار

الرد
تم الشكر بواسطة: elgokr , asemshahen5 , asemshahen
#3
يعطيك العافية والف شكر لك استاذنا
الرد
تم الشكر بواسطة: elgokr , asemshahen5 , asemshahen
#4
الملف معطوب ممكن تحمل على رابط اخر

وشكرا
الرد
تم الشكر بواسطة: asemshahen5 , asemshahen , asemshahen
#5
(23-11-18, 03:34 PM)the viper كتب : الملف معطوب ممكن تحمل على رابط اخر

وشكرا


الملف يعمل اخى الفاضل 

فقط قم بتحميل اخر اصدار من WinRar

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: asemshahen5 , asemshahen , asemshahen
#6
(25-11-18, 09:35 AM)elgokr كتب :
(23-11-18, 03:34 PM)the viper كتب : الملف معطوب ممكن تحمل على رابط اخر

وشكرا


الملف يعمل اخى الفاضل 

فقط قم بتحميل اخر اصدار من WinRar

تحياتى لك
وتمنياتى لك التوفيق

اسف اخي المقصد انه عند عملية التحميل لايكمل العملية

انظر للمرفقات


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة: asemshahen5 , asemshahen , asemshahen
#7
جزيل الشكر لك
الرد
تم الشكر بواسطة: asemshahen5 , asemshahen , asemshahen
#8
اريد كيفية التحرير
كلنا لبسنا كمامات باقي هذا السبب الرئيسي الذي عدا كوكبنا خلاص لبس كمامة
[صورة مرفقة: coronavirus-2019-ncov-concept-protect-wo...0-5574.jpg]
الرد
تم الشكر بواسطة: asemshahen , asemshahen
#9
جزاك الله خير يا ابو ليلى ولكن كيف يمكنني ان اجعل زر من خلاله يتم معرفة اخر صف في جدول معين ثم اضافة جميع محتويات datagridview
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد
تم الشكر بواسطة: asemshahen


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

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم