تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ممكن دمج كودين
#1
السلام عليكم

ممكن دمج الكود الأول لاستراد ملف اكسل

كود :
Imports System.Data
Imports System.Data.OleDb
Public Class Form1

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       ofd.Filter = "Excel 2007|*.xlsx|Excel 2003|*.xls"
       If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
           grd.DataSource = Nothing
           grd.Columns.Clear()
           Dim path As String = ofd.FileName
           Dim conn As New OleDbConnection("PROVIDER=MICROSOFT.ACE.OLEDB.12.0;DATA SOURCE=" & path & "; EXTENDED PROPERTIES=EXCEL 12.0;")
           Dim ds As New DataSet
           Dim da As New OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn)
           da.Fill(ds, "[Sheet1$]")
           grd.DataSource = ds.Tables("[Sheet1$]")
       Else
           End
       End If

   End Sub

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

   End Sub
End Class

مع الكود الثاني لتصدير نفس الملف طبعا بعد وضع التعديلات عليه


كود :
Imports Microsoft.Office.Interop.Excel
Public Class Form1

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
       Dim exlapp As New Application
       Dim exlworkbook As Workbook
       Dim exlworksheet As Worksheet
       Dim misvalue As Object = System.Reflection.Missing.Value

       exlworkbook = exlapp.Workbooks.Add(misvalue)
       exlworksheet = exlworkbook.Sheets("Sheet1")

       For colhead As Integer = 0 To grd.ColumnCount - 1
           exlworksheet.Cells(1, colhead + 1) = grd.Columns(colhead).HeaderText
       Next

       For i As Integer = 0 To grd.RowCount - 2
           For j As Integer = 0 To grd.ColumnCount - 1
               exlworksheet.Cells(i + 2, j + 1) = grd.Rows(i).Cells(j).Value.ToString
           Next
       Next

       sfd.Filter = "Excel Files|*.xlsx|Excel 2003|*.xls"
       If sfd.ShowDialog = System.Windows.Forms.DialogResult.OK Then
           exlworksheet.SaveAs(sfd.FileName)
       End If

       exlworkbook.Close()
       exlapp.Quit()

       System.Runtime.InteropServices.Marshal.ReleaseComObject(exlapp)
       System.Runtime.InteropServices.Marshal.ReleaseComObject(exlworkbook)
       System.Runtime.InteropServices.Marshal.ReleaseComObject(exlworksheet)

       exlapp = Nothing
       exlworkbook = Nothing
       exlworksheet = Nothing

       If MsgBox("هل تريد فتح الملف", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
           Process.Start(sfd.FileName)
       End If

   End Sub
End Class


اي جعلهم في فورم واحد ( استراد الملف ---التعديل عليه ثم التصدير )

بارك الله فيكم جميعا
------------------------
منكم أتعلم
------------------------

الرد }}}
تم الشكر بواسطة: حريف برمجة , حريف برمجة , asemshahen5


الردود في هذا الموضوع
ممكن دمج كودين - بواسطة sofiane-phy - 28-11-19, 09:57 PM
RE: ممكن دمج كودين - بواسطة ابو ليلى - 28-11-19, 10:37 PM
RE: ممكن دمج كودين - بواسطة sofiane-phy - 28-11-19, 10:40 PM


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


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