تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] كود استيراد الاصناف من البرنامج الى الاكسيل
#5
مرحبا أخي هذا الكود جربه وعدل الباقي بحسب قاعدة البيانات 
وتعديل كود الاتصال

يوجد زر لجلب البيانات من اكسل
يوجد زر لحفظ البيانات الى قاعدة البيانات
يوجد زر لعرض البيانات من قاعدة البيانات
يوجد زر لتصدير البيانات الى ملف اكسل

ملاحظة:
هل دائماً الجدول فارغ ام انك تقوم بإضافة البيانات مع البيانات السابقة ام انك تقوم بتفريق الجدول وملئه من ملف الاكسل ام انط تقوم بتعديل البيانات في حال وجودة بحسب رقم الباركود للصنف
أسالة تطرح حتى يتم تعديل الكود بما يتناسب مع العمل الذي تقوم به.

الكود كامل

PHP كود :
Imports System.Data.SqlClient
Imports Excel 
Microsoft.Office.Interop.Excel

Public Class Form3
    Private Sub ButtonImport_Click
(sender As ObjectAs EventArgsHandles ButtonImport.Click
        Dim openFileDialog 
As New OpenFileDialog()
 
       openFileDialog.Filter "Excel Files|*.xls;*.xlsx;*.xlsm"
 
       If openFileDialog.ShowDialog() = DialogResult.OK Then
            ImportExcelToDataGridView
(openFileDialog.FileName)
 
       End If
 
   End Sub

    Private Sub ImportExcelToDataGridView
(ByVal filePath As String)
 
       Dim excelApp As New Excel.Application()
 
       Dim excelWorkbook As Excel.Workbook excelApp.Workbooks.Open(filePath)
 
       Dim excelWorksheet As Excel.Worksheet CType(excelWorkbook.Sheets(1), Excel.Worksheet)
 
       Dim excelRange As Excel.Range excelWorksheet.UsedRange

        
' قراءة السطر الأول كعناوين الأعمدة
        For col As Integer = 1 To 15
            DataGridView1.Columns.Add(Convert.ToString(excelRange.Cells(1, col).Value2), Convert.ToString(excelRange.Cells(1, col).Value2))
        Next

        ' 
قراءة البيانات من السطر الثاني
        For row 
As Integer 2 To excelRange.Rows.Count
            Dim isRowEmpty 
As Boolean True
            Dim rowData
(14) As String ' مصفوفة لاستيعاب بيانات الصف

            For col As Integer = 1 To 15
                Dim cellValue As String = Convert.ToString(excelRange.Cells(row, col).Value2)
                rowData(col - 1) = cellValue
                If Not String.IsNullOrWhiteSpace(cellValue) Then
                    isRowEmpty = False
                End If
            Next

            If Not isRowEmpty Then
                DataGridView1.Rows.Add(rowData)
            End If
        Next

        excelWorkbook.Close(False)
        excelApp.Quit()

        ReleaseObject(excelRange)
        ReleaseObject(excelWorksheet)
        ReleaseObject(excelWorkbook)
        ReleaseObject(excelApp)
    End Sub

    Private Sub ButtonSave_Click(sender As Object, e As EventArgs) Handles ButtonSave.Click
        SaveDataGridViewToDatabase()
    End Sub

    Private Sub ButtonLoad_Click(sender As Object, e As EventArgs) Handles ButtonLoad.Click
        LoadDataFromDatabase()
    End Sub

    Private Sub ButtonExport_Click(sender As Object, e As EventArgs) Handles ButtonExport.Click
        ExportDataGridViewToExcel()
    End Sub

    Private Sub SaveDataGridViewToDatabase()
        Dim connectionString As String = "Data Source=.;Initial Catalog=DATABASE;Integrated Security=True"
        Using cn As New SqlConnection(connectionString)
            cn.Open()
            For Each row As DataGridViewRow In DataGridView1.Rows
                If Not row.IsNewRow Then
                    Using cm As New SqlCommand("INSERT INTO Item_Tbl (ItemBarcode , ItemNameA , ItemNameE , ..., Column15) VALUES (@ItemBarcode , @ItemNameA , @ItemNameE, ..., @val15)", cn)
                        cm.Parameters.AddWithValue("@ItemBarcode", row.Cells(0).Value)
                        cm.Parameters.AddWithValue("@ItemNameA", row.Cells(1).Value)
                        cm.Parameters.AddWithValue("@ItemNameE", row.Cells(2).Value)
                        '
...
 
                       cm.Parameters.AddWithValue("@val15"row.Cells(14).Value)
 
                       cm.ExecuteNonQuery()
 
                   End Using
                End 
If
 
           Next
        End Using
        MessageBox
.Show("Data saved successfully!")
 
   End Sub
    Private Sub LoadDataFromDatabase
()
 
       Dim connectionString As String "Data Source=.;Initial Catalog=DATABASE;Integrated Security=True"
 
       Using cn As New SqlConnection(connectionString)
 
           Dim query As String "SELECT * FROM Item_Tbl"
 
           Dim da As New SqlDataAdapter(querycn)
 
           Dim dt As New DataTable()
 
           da.Fill(dt)
 
           DataGridView1.DataSource dt
        End Using
    End Sub

    Private Sub ExportDataGridViewToExcel
()
 
       Dim excelApp As New Excel.Application()
 
       Dim excelWorkbook As Excel.Workbook excelApp.Workbooks.Add()
 
       Dim excelWorksheet As Excel.Worksheet CType(excelWorkbook.Sheets(1), Excel.Worksheet)

 
       ' إضافة عناوين الأعمدة
        For col As Integer = 0 To DataGridView1.Columns.Count - 1
            excelWorksheet.Cells(1, col + 1).Value = DataGridView1.Columns(col).HeaderText
        Next

        ' 
إضافة البيانات
        For row 
As Integer 0 To DataGridView1.Rows.Count 1
            For col 
As Integer 0 To DataGridView1.Columns.Count 1
                excelWorksheet
.Cells(row 2col 1).Value DataGridView1.Rows(row).Cells(col).Value
            Next
        Next

        
' حفظ الملف
        Dim saveFileDialog As New SaveFileDialog()
        saveFileDialog.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm"
        If saveFileDialog.ShowDialog() = DialogResult.OK Then
            excelWorkbook.SaveAs(saveFileDialog.FileName)
            excelWorkbook.Close()
            excelApp.Quit()
            MessageBox.Show("Data exported successfully!")
        End If

        ReleaseObject(excelWorksheet)
        ReleaseObject(excelWorkbook)
        ReleaseObject(excelApp)
    End Sub

    Private Sub ReleaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try
    End Sub

End Class 
[صورة مرفقة: images?q=tbn:ANd9GcT72OLJW7D1E5QW-HUeWeJ...TGoNeg2jnQ]
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: كود استيراد الاصناف من البرنامج الى الاكسيل - بواسطة تركي الحلواني - 15-07-24, 10:44 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  لماذا البرنامج يتوقف بدل عرض رسالة الخطأ justforit 0 109 07-12-25, 10:22 AM
آخر رد: justforit
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,015 06-08-25, 06:34 PM
آخر رد: Taha Okla
  [سؤال] تغيير الفورم الرئيسي عند تشغيل البرنامج في Visual Studio مع .NET 8؟ silverlord 2 659 09-03-25, 03:52 AM
آخر رد: silverlord
Rainbow [VB.NET] عدد من هم فاتحي البرنامج محمد مسافر 1 424 25-02-25, 07:58 PM
آخر رد: princelovelorn
  مساعدة في استيراد البيانات من الليست بوكس fireswored1 4 485 22-01-25, 08:43 PM
آخر رد: fireswored1
  [Acces2010] مساعدة في كود استيراد يانات fireswored1 9 604 02-01-25, 03:25 AM
آخر رد: fireswored1
  استفسار عن حمايه البرنامج ahmedramy 1 559 25-12-24, 11:07 PM
آخر رد: aljzazy
  مساعدة في عمل جملة الاتصال في ملف خارج البرنامج Emam emam 2 393 25-11-24, 09:24 PM
آخر رد: Emam emam
  تغيير مكان حفظ الصورة من قاعدة البيانات إلى مجلد في مسار البرنامج F.H.M 37 2,397 05-11-24, 08:30 AM
آخر رد: F.H.M
  [مثال] تشغيل البرنامج كمسؤول alswade 2 468 30-10-24, 07:08 PM
آخر رد: aliday03

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


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