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

أولا 
في نافذة "Package Manager Console"، اكتب الأوامر التالية:

PHP كود :
Install-Package ExcelDataReader
Install
-Package ExcelDataReader.DataSet 

ثانيا جرب الكود التالي

PHP كود :
Imports System.Data
Imports System
.Data.SqlClient
Imports System
.IO
Imports ExcelDataReader

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)
 
       Try
            Using stream 
File.Open(filePathFileMode.OpenFileAccess.Read)
 
               Dim excelReader As IExcelDataReader ExcelReaderFactory.CreateReader(stream)
 
               Dim result As DataSet excelReader.AsDataSet(New ExcelDataSetConfiguration() With {
 
                   .ConfigureDataTable = Function(__) New ExcelDataTableConfiguration() With {
 
                       .UseHeaderRow True
                    
}
 
               })

 
               Dim dataTable As DataTable result.Tables(0)
 
               DataGridView1.DataSource dataTable
                excelReader
.Close()
 
           End Using
        Catch ex 
As Exception
            MessageBox
.Show("Error importing Excel file: " ex.Message)
 
       End Try
 
   End Sub

    Private Sub ButtonSave_Click
(sender As ObjectAs EventArgsHandles ButtonSave.Click
        SaveDataGridViewToDatabase
()
 
   End Sub

    Private Sub ButtonLoad_Click
(sender As ObjectAs EventArgsHandles ButtonLoad.Click
        LoadDataFromDatabase
()
 
   End Sub

    Private Sub ButtonExport_Click
(sender As ObjectAs EventArgsHandles 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(query, cn)
            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(1col 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 + 2, col + 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]
الرد }}}
تم الشكر بواسطة: Hamza8484


الردود في هذا الموضوع
RE: كود استيراد الاصناف من البرنامج الى الاكسيل - بواسطة تركي الحلواني - 22-07-24, 10:29 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 660 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

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


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