تقييم الموضوع :
  • 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
#2
السلام عليكم و رحمة الله و بركاته
اخي الكريم خذ نصيحتي اذا كان العمل لديك كثير مع ملفات الاكسل
ابتعد من مكاتب Com الجاهزة فهي لا توصلك الى مرادك بشكل كامل
منذ فترة بعيدة تعاملت مع منظمة UNCIEF (منظمة الامومة و الطفولة التابعة للامم المتحدة)
كان لدى مكاتب المنظمة الكثير من المكاتب و الكثير من العيادات الخاصة بها و الفرق الجوالة 
وكل عملهم كان على ملفات الاكسل و كان يتم استيراد اعمال كل مكتب و فرقة الى ملف مركزي و تخصيص عيادة و مراكز خاصة و استصدار تقارير مفصلة عن نشاط كل مكتب و فرقة.....الخ
عانيت كثيرا مع المكاتب التقليدية و عجزت عن مجاراة طلباتهم , ناهيك عن بطأ هذه المكاتب عندما تود التعامل مع بيانات كثيرة كحال هذه المنظمات.
المهم في هذا الموضوع يوجد بدائل اسرع و اقوى و تلبي كل طلباتك.
التخاطب مع الاكسل من خلال مكاتب OpenXml و Closed Xml
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
#3
(28-11-19, 10:37 PM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
اخي الكريم خذ نصيحتي اذا كان العمل لديك كثير مع ملفات الاكسل
ابتعد من مكاتب Com الجاهزة فهي لا توصلك الى مرادك بشكل كامل
منذ فترة بعيدة تعاملت مع منظمة UNCIEF (منظمة الامومة و الطفولة التابعة للامم المتحدة)
كان لدى مكاتب المنظمة الكثير من المكاتب و الكثير من العيادات الخاصة بها و الفرق الجوالة 
وكل عملهم كان على ملفات الاكسل و كان يتم استيراد اعمال كل مكتب و فرقة الى ملف مركزي و تخصيص عيادة و مراكز خاصة و استصدار تقارير مفصلة عن نشاط كل مكتب و فرقة.....الخ
عانيت كثيرا مع المكاتب التقليدية و عجزت عن مجاراة طلباتهم , ناهيك عن بطأ هذه المكاتب عندما تود التعامل مع بيانات كثيرة كحال هذه المنظمات.
المهم في هذا الموضوع يوجد بدائل اسرع و اقوى و تلبي كل طلباتك.
التخاطب مع الاكسل من خلال مكاتب OpenXml و Closed Xml

بارك الله فيك على النصيحة
------------------------
منكم أتعلم
------------------------

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



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


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