23-01-24, 11:37 AM
(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 Object, e As EventArgs) Handles 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 ' يفترض أن البيانات تبدأ من الصف 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

