03-05-20, 10:53 PM
(آخر تعديل لهذه المشاركة : 03-05-20, 11:10 PM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته
اخي محمد العامر واضح انك تستخدم اوفيس 2003 وهي المشكلة
من خلال تجربتي السابقة مع التصدير الى اكسل الامر يتعلق بنسخة الاوفيس التي تستخدمها (المعروف ان برامجنا كلها مقرصنة والكثير منها ملفاته ناقصة)
كنت فيما مصى استخدم اوفيس 2003 وعند التصدير الى اكسل كان يظهر لي الخطأ بفشل عملية التصدير وعانيت الكثير منها في الوقت الذي كان غيري تنجح معه العملية ولكن لاأحد كان ينتبه الى نسخة الاوفيس المستخدمة لان هناك ملفات Dll تستخدم في العملية لاستقبال التصدير المشكلة لاتظهر مع نسخة اعلى من 2003
المهم قمت (بالاحتيال ) ونفس الكود جعلته يعيد المحاولة حتى يقوم بالعملية والان انا استحدم اوفيس 2016 ومن باب التجربة من بعد سؤالك فتحت المشروع السابق والغيت عبارة اعادة المحاولة وكانت المفاجأة بان عمل الكود نفسه بكفاءة عالية وسأورد لك الكود ولاحط هذه الجملة
التي كنت قد وضعتها في Catch ex As Exception وكتبت بجانبها وقتها تعليق بالعربية
وموقع gg ليعيد المحاولة
الان الغيتهما اليك الكود
ملاحظة : غير اسم الداتا غرايد من dgv_table الى اسم الداتاغرايد التي تستخدمها
وهناك شيئ أخر هو هذا السطر
حيث سيظهر الجدول بالتنسيق الانكليزي اي يسار ان اردت اظهاره من اليمين استخدم بدلا
منه هذا السطر
اخي محمد العامر واضح انك تستخدم اوفيس 2003 وهي المشكلة
من خلال تجربتي السابقة مع التصدير الى اكسل الامر يتعلق بنسخة الاوفيس التي تستخدمها (المعروف ان برامجنا كلها مقرصنة والكثير منها ملفاته ناقصة)
كنت فيما مصى استخدم اوفيس 2003 وعند التصدير الى اكسل كان يظهر لي الخطأ بفشل عملية التصدير وعانيت الكثير منها في الوقت الذي كان غيري تنجح معه العملية ولكن لاأحد كان ينتبه الى نسخة الاوفيس المستخدمة لان هناك ملفات Dll تستخدم في العملية لاستقبال التصدير المشكلة لاتظهر مع نسخة اعلى من 2003
المهم قمت (بالاحتيال ) ونفس الكود جعلته يعيد المحاولة حتى يقوم بالعملية والان انا استحدم اوفيس 2016 ومن باب التجربة من بعد سؤالك فتحت المشروع السابق والغيت عبارة اعادة المحاولة وكانت المفاجأة بان عمل الكود نفسه بكفاءة عالية وسأورد لك الكود ولاحط هذه الجملة
كود :
'GoTo gg ' اضطررت لاستخدام هذه العبارة وضحكت من نفسي على استخدامهاوموقع gg ليعيد المحاولة
الان الغيتهما اليك الكود
كود :
Private Sub Btn_ExToExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_ExToExcel.Click
If dgv_table.Rows.Count = 0 Then
Exit Sub
Else
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
'gg:
Try
Dim xlApp As New Application
Dim excelworkBook As Microsoft.Office.Interop.Excel.Workbook = xlApp.Workbooks.Add
Dim excelWorksheet As Microsoft.Office.Interop.Excel.Worksheet = CType(excelworkBook.Worksheets(1), Worksheet)
xlApp.Visible = False
Dim currCol As Integer = 1
excelWorksheet.Cells.Select()
excelWorksheet.Cells.Delete()
For iC As Integer = 0 To dgv_table.Columns.Count - 1
If dgv_table.Columns(iC).Visible = True Then
excelWorksheet.Cells(1, currCol).Value = dgv_table.Columns(iC).HeaderText
currCol += 1
End If
Next
For i As Integer = 0 To dgv_table.RowCount - 2
currCol = 1
For j As Integer = 0 To dgv_table.Columns.Count - 1
If dgv_table.Columns(j).Visible = True Then
excelWorksheet.Cells(i + 2, currCol).value = dgv_table.Rows(i).Cells(j).FormattedValue
currCol += 1
End If
Next
Next
excelWorksheet.Rows("1:1").Font.FontStyle = "Normal"
excelWorksheet.Rows("1:1").Font.Size = 10
excelWorksheet.Cells.Columns.AutoFit()
excelWorksheet.Cells.Select()
excelWorksheet.Cells.EntireColumn.AutoFit()
excelWorksheet.Cells(1, 1).Select()
xlApp.Visible = True
Catch ex As Exception
'GoTo gg ' اضطررت لاستخدام هذه العبارة وضحكت من نفسي على استخدامها
'MsgBox("Export Excel Error " & ex.Message)
MsgBox("فشلت عملية التصدير حاول مرة ثانية")
Finally
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
End Try
End If
End Subوهناك شيئ أخر هو هذا السطر
كود :
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")منه هذا السطر
كود :
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("ar-SA")اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
