منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف نستورد أعمدة محددة من أكسل ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السؤال واضح من العنوان 

أريد أن أستورد أعمدة من أوراق من أكسل بالاسم 

مثلا A .AL.AT

وهكذا مجرد مثل الاحرف 

وليس شيت كامل 

كما أن ملف الاكسل يحتوي على صفحات عدة لا تتحكم بعدد الصفحات ربما يكون 30 أو 40 أو 20 وهكاذ 

فالعمود المستورد  يشمل هذه الصفحات كلها 


اسم  محمد يوجد في العمود AL السطر 28 مثلا 

كيف نستورد ؟

ولكم مني جزيل الشكر والتقدير
(23-01-24, 07:20 AM)saud1004 كتب : [ -> ]السؤال واضح من العنوان 

أريد أن أستورد أعمدة من أوراق من أكسل بالاسم 

مثلا A .AL.AT

وهكذا مجرد مثل الاحرف 

وليس شيت كامل 

كما أن ملف الاكسل يحتوي على صفحات عدة لا تتحكم بعدد الصفحات ربما يكون 30 أو 40 أو 20 وهكاذ 

فالعمود المستورد  يشمل هذه الصفحات كلها 


اسم  محمد يوجد في العمود AL السطر 28 مثلا 

كيف نستورد ؟

ولكم مني جزيل الشكر والتقدير

تفضل اخي غير المعلومات بحسب المطلوب

PHP كود :
Imports Microsoft.Office.Interop.Excel

Public Class Form2
    Private Sub btnImport_Click
(sender As ObjectAs EventArgsHandles btnImport.Click
        
' افتح ملف الإكسل باستخدام OpenFileDialog
        Dim openFileDialog As New OpenFileDialog()
        openFileDialog.Filter = "ملفات Excel|*.xls;*.xlsx"

        If openFileDialog.ShowDialog() = DialogResult.OK Then
            Try
                DataGridView1.Rows.Clear()
                ' 
إعداد التطبيق Excel
                Dim excelApp 
As New Application()
 
               Dim workbooks As Workbooks excelApp.Workbooks
                Dim workbook 
As Workbook workbooks.Open(openFileDialog.FileName)
 
               Dim worksheets As Sheets workbook.Sheets

                For i 
1 To worksheets.Count
                    
' اختيار الورقة المطلوبة، يمكن تعديل الاسم حسب اسم الورقة في الملف
                    Dim worksheet As Worksheet = DirectCast(worksheets(i), Worksheet)

                    ' 
قراءة البيانات من الصفوف في الورقة وإضافتها مباشرة إلى DataGridView
                    Dim row 
As Integer ' يفترض أن البيانات تبدأ من الصف 2
                    Do While Not String.IsNullOrEmpty(worksheet.Cells(row, 1).Value)
                        ' 
استخراج القيم من العمود المطلوب
                        Dim columnAValue 
As String worksheet.Cells(row"A").Value.ToString()
 
                       Dim columnBValue As String worksheet.Cells(row"B").Value.ToString()
 
                       Dim columnDValue As String worksheet.Cells(row"C").Value.ToString()

 
                       ' إضافة البيانات مباشرة إلى DataGridView
                        DataGridView1.Rows.Add(columnAValue, columnBValue, columnDValue)

                        ' 
انتقال إلى الصف التالي
                        row 
+= 1
                    Loop
                Next
                
' إغلاق ملف Excel
                workbook.Close()
                excelApp.Quit()
            Catch ex As Exception
                MessageBox.Show("حدث خطأ أثناء قراءة ملف Excel: " & ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End If
    End Sub
End Class 
الله يعطيك العافية  الكود جميل وفعال في ملف أكسل أقوم بتصميمه أنا حسب الكود  المكتوب من قبلكم

ولكن لو أن ملف أكسل محدد من موقع معين ولا يتغير
فمثلا قمت بتحميل ملف أكسل من موقع معين لا يتغير
مثلا
الاسم في  عمود AI الصف 28
الصف في عمود J الصف 19
الفصل في عمود   AA   الصف 28
أسماء المواد في عمود  AT
التقدير  في العمود X
درجة اختبار نهاية الفصل في العمود AL
يبدا جلب المواد من  الصف 35 تقريبا
(23-01-24, 06:36 PM)saud1004 كتب : [ -> ]الله يعطيك العافية  الكود جميل وفعال في ملف أكسل أقوم بتصميمه أنا حسب الكود  المكتوب من قبلكم

ولكن لو أن ملف أكسل محدد من موقع معين ولا يتغير
فمثلا قمت بتحميل ملف أكسل من موقع معين لا يتغير
مثلا
الاسم في  عمود AI الصف 28
الصف في عمود J الصف 19
الفصل في عمود   AA   الصف 28
أسماء المواد في عمود  AT
التقدير  في العمود X
درجة اختبار نهاية الفصل في العمود AL
يبدا جلب المواد من  الصف 35 تقريبا

لم افهم لو توضح اكثر

اما بخصوص جلب الملف من موقع محدد استبدل المسار هنا (Dim workbook As Workbook workbooks.Open(openFileDialog.FileName))
مثلاً (Dim workbook As Workbook workbooks.Open("C:\FolderLink.xlsx"))
أولا أشكر لك متابعتك وحرصك على منفعة الغير فتقبل مني شكري واحترامي
لا أخي ليس الجلب من موقع
ملف أكسل عندي موجود بالعفل

ولكن المعلومات التي ذكرت هي داخل ملف الاكسل وأريد جلبها حسب موقعها من العمود والصف
الاسم في عمود AI الصف 28
الصف في عمود J الصف 19
الفصل في عمود AA الصف 28
أسماء المواد في عمود AT
التقدير في العمود X
درجة اختبار نهاية الفصل في العمود AL
أما المواد فهي في عمود واحد AT
ويبدأ جلبها من الصف رقم 35
يبدا جلب المواد من الصف 35 تقريبا

أتمنى أني قد وضحت الفكرة
(24-01-24, 01:20 PM)saud1004 كتب : [ -> ]أولا أشكر لك متابعتك وحرصك على منفعة الغير فتقبل مني شكري واحترامي
لا أخي ليس الجلب من موقع
ملف أكسل عندي موجود بالعفل

ولكن المعلومات التي ذكرت هي داخل ملف الاكسل وأريد جلبها حسب موقعها من العمود والصف
الاسم في  عمود AI الصف 28
الصف في عمود J الصف 19
الفصل في عمود   AA   الصف 28
أسماء المواد في عمود  AT
التقدير  في العمود X
درجة اختبار نهاية الفصل في العمود AL
أما المواد فهي في عمود واحد AT
ويبدأ جلبها من الصف رقم 35
يبدا جلب المواد من  الصف 35 تقريبا

أتمنى أني قد وضحت الفكرة

جرب هذا وقم بتعديل البيانات بحسب المطلوب

PHP كود :
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click

       Dim openFileDialog 
As New OpenFileDialog()
 
   openFileDialog.Filter "ملفات Excel|*.xls;*.xlsx"
 
   Try
        If openFileDialog
.ShowDialog() = DialogResult.OK Then
            DataGridView1
.Rows.Clear()
 
                       Dim excelApp As New Excel.Application()

 
                     Dim workbook As Excel.Workbook excelApp.Workbooks.Open(openFileDialog.FileName)
 
           Dim worksheets As Sheets workbook.Sheets
            For i 
1 To worksheets.Count
             
                Dim worksheet 
As Worksheet DirectCast(worksheets(i), Worksheet)
 
               Dim valueAI As Object worksheet.Cells(2"A").Value
                             Dim valueJ 
As Object worksheet.Cells(3"B").Value
                                         Dim valueAA 
As Object worksheet.Cells(1"C").Value
             
                DataGridView1
.Rows.Add(valueAIvalueJvalueAA)
 
           Next
            workbook
.Close(False)
 
                   excelApp.Quit()
 
           System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
 
           System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
 
       End If
 
   Catch ex As Exception
        MessageBox
.Show("حدث خطأ أثناء قراءة ملف Excel: " ex.Message"خطأ"MessageBoxButtons.OKMessageBoxIcon.Error)
 
       End Try
End Sub 
ما شاء الله تبارك الله

حفظك الله ورعاك نعم هذا ما أريد ولكن سأحاول أن أجد حل لاضافة أخرى

فإن لم أجد سأعود مرة أخرى

لأن كل طالب يتبعه سبع مواد فلابد من تكرار اسم الطالب سبع مرات لكل مادة درجة وهكذا

إن لم أجد حل رجعت لك فأرجو أن أكون خفيفا عليك

تقبل مني كل الشكر والتقدير والاحترام لشخصك الكريم
أسأل الله العلي العظيم أن يجعل ما تقدمه منفعة لغيرك في ميزان حسناتك
بالتوفيق بإذن الله
السلام عليكم
الحمدلله تم استيراد جميع البيانات من ملف أكسل في موقعها الصحيح في الداتا قريد فيو

لكن عند الاتصال بقاعدة البيانات من نوع أكسس لا يقبل الاتصال يضع خطأ تحت ( OleDbConnection )

رغم أني وضعت ( Imports System.Data.OleDb )

وإذا ألغيت (Imports Microsoft.Office.Interop.Excel )

قبل الاتصال وألغى  كود الاستيراد

كيف أجمع بين الامرين
Imports Microsoft.Office.Interop.Excel

Imports System.Data.OleDb

وتقبل شكري وتقديري
(25-01-24, 07:30 AM)saud1004 كتب : [ -> ]السلام عليكم
الحمدلله تم استيراد جميع البيانات من ملف أكسل في موقعها الصحيح في الداتا قريد فيو

لكن عند الاتصال بقاعدة البيانات من نوع أكسس لا يقبل الاتصال يضع خطأ تحت ( OleDbConnection )

رغم أني وضعت ( Imports System.Data.OleDb )

وإذا ألغيت (Imports Microsoft.Office.Interop.Excel )

قبل الاتصال وألغى  كود الاستيراد

كيف أجمع بين الامرين
Imports Microsoft.Office.Interop.Excel

Imports System.Data.OleDb

وتقبل شكري وتقديري

اجعل أوامر التعريف و الاستيراد الخاصة بالإكسل ضمن نافذة أو مودل
وأوامر التعريف الخاصة بـ الاكسس ضمن نافذة أو مودل منفصل
تجعل تعاريفك عامة (Public) لتستطيع ندائها من أي مكان في مشروعك..
بالتالي لن تحصل على أي تعارض..
الصفحات : 1 2