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