برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل - new_programer - 14-02-19
[attachment=20839]
السلام عليكم
قمت بعمل مثال لتصدير البيانات الى اكسيل
لكن يظهر خطاء
اريد معرفة هل الخطاء بسبب مشكلة فى الويندوز عندى او الكود محتاج تعديل
ارجو التكرم ومشاهدة الكود والتعليق
مرفق صورة الخطاء مع البرنامج
RE: برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل - princelovelorn - 14-02-19
وعليكم السلام ورحمة الله وبركاته
جربت المثال يعمل بدون مشكلة ولا تظهر رسالة الخطا المذكورة
ولكن بيكون ملف الاكسل الناتج فارغ
وبعد البحث وجدت ان في سطر مفقود في الكود وهو التالي
كود :
For i As Integer = 0 To grd.RowCount - 2
For j As Integer = 0 To grd.ColumnCount - 1
Next
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
Next
Next
وبعد التجربة تم انشاء الملف بنجاح وتصدير البيانات فيه بنجاح
مرفق المثال بعد إضافة السطر الناقص + الملف الناتج
* ملحوظة أستخدم عندي أوفيس 2010 فيجوال ستوديو 2012
تمنياتي لك بالتوفيق والنجاح
RE: برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل - عبد العزيز البسكري - 14-02-19
السّلام عليكم و رحمة الله و بركاته
أخي الكريم ..
أوّلا أتقدّم بجزيل الشكر و الإحترام و الإمتنان للأخ الفاضل " princelovelorn " لما قدّمه و يقدّمه للإخوة الأكارم
و المف المرسل من طرفه شغّال بطريقة رائعة و ليس به أي خلل ..
فقط كملاحظة من باب الاحتياط ..
أنا أشتغل على نسخة أوفيس 2010 لغة فرنسية و جميع الأكود لم تشتغل نتيجة عبارة Sheet1 .. طبعا قمت باستبدالها إلى كلمة Feuil1 واشتغل تمام
بالمعنى .. لو كان الأمر بملف تنفيذي على جهاز غير جهازك .. فكيف سيتم تغيير واستبدال الكلمة المقصودة
و لذلك أخي الكريم و من باب زيادة الخير خيرين .. إستعمل هذا الكود في تصدير البيانات إلى الإكسل فلا يوجد به أي إلتباس نحو هذا الأمر المشار إليه ..
غيّر أخي الكريم ما يجب تغييره ..
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Export_Dat_Excel(DGV_PATIENT)
End Sub
كود :
Private Sub Export_Dat_Excel(ByVal st As Object)
If IO.Directory.Exists("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE\Association.xlsx") = False Then
IO.Directory.CreateDirectory("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE")
End If
If ((DGV_PATIENT.Columns.Count = 0) Or (DGV_PATIENT.Rows.Count = 0)) Then
Exit Sub
End If
Dim rowsTotal, colsTotal As Short
Dim I, j, iC As Short
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
Dim xlApp As New Excel.Application
Try
Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add
Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
xlApp.Visible = True
rowsTotal = st.RowCount
colsTotal = st.Columns.Count - 1
With excelWorksheet
.Cells.Select()
.Cells.Delete()
For iC = 0 To colsTotal
.Cells(1, iC + 1).Value = st.Columns(iC).HeaderText
Next
For I = 0 To rowsTotal - 1
For j = 0 To colsTotal
.Cells(I + 2, j + 1).value = st.Rows(I).Cells(j).Value
Next j
Next I
.Rows("1:1").Style.Font.Name = "Times New Roman"
.Rows("1:1").Font.FontStyle = "Bold"
.Rows("1:1").Font.Size = 12
.Rows("1:1").Font.Color = Color.Red
.Columns.HorizontalAlignment = 3
.Cells(j + 1).ColumnWidth = 10
.Cells.Columns.AutoFit()
.Cells.Select()
.Cells.EntireColumn.AutoFit()
.Cells(1, 1).Select()
End With
excelWorksheet.SaveAs("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE" & Now.ToString("@yyyy-MM-dd@HH-mm-ss") & ".xlsx")
excelBook.Close()
xlApp.Quit()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
End Try
End Sub
تحياتي
RE: برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل - princelovelorn - 14-02-19
(14-02-19, 11:01 PM)عبد العزيز البسكري كتب : السّلام عليكم و رحمة الله و بركاته
أخي الكريم ..
أوّلا أتقدّم بجزيل الشكر و الإحترام و الإمتنان للأخ الفاضل " princelovelorn " لما قدّمه و يقدّمه للإخوة الأكارم
و المف المرسل من طرفه شغّال بطريقة رائعة و ليس به أي خلل ..
فقط كملاحظة من باب الاحتياط ..
أنا أشتغل على نسخة أوفيس 2010 لغة فرنسية و جميع الأكود لم تشتغل نتيجة عبارة Sheet1 .. طبعا قمت باستبدالها إلى كلمة Feuil1 واشتغل تمام
بالمعنى .. لو كان الأمر بملف تنفيذي على جهاز غير جهازك .. فكيف سيتم تغيير واستبدال الكلمة المقصودة
و لذلك أخي الكريم و من باب زيادة الخير خيرين .. إستعمل هذا الكود في تصدير البيانات إلى الإكسل فلا يوجد به أي إلتباس نحو هذا الأمر المشار إليه ..
غيّر أخي الكريم ما يجب تغييره ..
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Export_Dat_Excel(DGV_PATIENT)
End Sub
كود :
Private Sub Export_Dat_Excel(ByVal st As Object)
If IO.Directory.Exists("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE\Association.xlsx") = False Then
IO.Directory.CreateDirectory("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE")
End If
If ((DGV_PATIENT.Columns.Count = 0) Or (DGV_PATIENT.Rows.Count = 0)) Then
Exit Sub
End If
Dim rowsTotal, colsTotal As Short
Dim I, j, iC As Short
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
Dim xlApp As New Excel.Application
Try
Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add
Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
xlApp.Visible = True
rowsTotal = st.RowCount
colsTotal = st.Columns.Count - 1
With excelWorksheet
.Cells.Select()
.Cells.Delete()
For iC = 0 To colsTotal
.Cells(1, iC + 1).Value = st.Columns(iC).HeaderText
Next
For I = 0 To rowsTotal - 1
For j = 0 To colsTotal
.Cells(I + 2, j + 1).value = st.Rows(I).Cells(j).Value
Next j
Next I
.Rows("1:1").Style.Font.Name = "Times New Roman"
.Rows("1:1").Font.FontStyle = "Bold"
.Rows("1:1").Font.Size = 12
.Rows("1:1").Font.Color = Color.Red
.Columns.HorizontalAlignment = 3
.Cells(j + 1).ColumnWidth = 10
.Cells.Columns.AutoFit()
.Cells.Select()
.Cells.EntireColumn.AutoFit()
.Cells(1, 1).Select()
End With
excelWorksheet.SaveAs("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE" & Now.ToString("@yyyy-MM-dd@HH-mm-ss") & ".xlsx")
excelBook.Close()
xlApp.Quit()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
End Try
End Sub
تحياتي
وعليكم السلام ورحمة الله وبركاته
أستاذي وأخي الفاضل
جزاك الله خيراً وبارك فيك وفي علمك وعملك ونفع بك الأسلام والمسلمين
RE: برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل - new_programer - 14-02-19
شكرا للاخوة الافاضل
[b]princelovelorn[/b]
[b] عبد العزيز البسكري[/b]
شكرا جدا لكم على ماتقدموة من علم ليستفيد به الاخرين ويجلة فى ميزان حسانتكم
الاكواد لا تزال لاتعمل وغالبا المشكلة من النظام او مشكلة فى الجهاز نفسة
شكرا لكم جميعا وتنمياتي لكم بالتوفيق
RE: برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل - اسامه الهرماوي - 15-02-19
اخي تاكد من وجود الاكسس الذي قكت بتصدير البيانات اليه هل هو مثبت ام لا.
RE: برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل - new_programer - 15-02-19
الاكسيل غير مثبت لكن يستعمل نسخة بورتابل
شكرا على هذا الملحوظ لأن مخدش بالي خالص منها
لكن بيتم استيراد الملف ويتم قراءتة فى البرنامج دون مشاكل
المفروض التصدير يتم بدون مشاكل
بغض النظر الأوفيس مثبت ام لا
البرمجة مهمتها الحلول والتسهيل
وشكرا على الملاحظة هجرب وهخبركم بالنتيجة
RE: برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل - new_programer - 15-02-19
الى الاستاذ [b]عبد العزيز البسكري[/b]
شكرا جدا ليك فعلا الكود الخاص بيك شغال تمام بدون مشاكل
لقد قمت بتنصيب الاكسيل واشتغل الكود تمام
وجاري التعديل على الكودين
|