منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل (/showthread.php?tid=26055)



مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - Marwan9990 - 09-08-18

اسعد الله اوقاتكم جميعا احبائي 

استفسار  ي اخوان 
انا معي فورم يحتوي على جريد فيو يعرض لي بيانات من قاعدة بيانات اكسس 

استخدمة مع جريد فيو الموضوع التالي .. وهو خيار اخفاء او اظهار بعض الاعمده في جريد فيو
http://vb4arb.com/vb/showthread.php?tid=15554

لحد الحين كل شي حلو 
 ايضا معي في الفورم كود التالي .. وهو كود تصدير بيانات جريد فيو الى ملف اكسل 
PHP كود :
Try
 
           Dim MsExcel CreateObject("Excel.Application")
 
           MsExcel.Workbooks.Add()
 
           For i As Integer 0 To dgv1.Columns.Count 1
                MsExcel
.Cells(1).Value dgv1.Columns(i).HeaderText
            Next
            For i 
As Integer 0 To dgv1.Columns.Count 1
                For j 
As Integer 0 To dgv1.Rows.Count 1

                    MsExcel
.Columns.HorizontalAlignment 3
                    MsExcel
.Columns.Font.Name "Times New Roman"
 
                   MsExcel.Columns.EntireColumn.AutoFit()
 
                   MsExcel.Rows.Item(1).Font.size 13
                    MsExcel
.Cells(21).Value dgv1.Rows(j).Cells(i).Value

                Next
            Next
            MsExcel
.Visible True
        Catch ex 
As Exception
            MsgBox
(ex.Message)
 
       End Try 


المشكلة الان انا اقوم بعملية اخفاء بعض الاعمده بستخدام الموضوع وطريقة التي سبق وذكرتها في الاعلى 
ولكن لما اذهب اعمل تصدير لملف الاكسل يقوم بتصدير بيانات التي قمت ب اخفاها ايضا 

فما هو الحل ؟  ياليت اذا احد معه حل للمشكلة يفيدني ب طريقة او تعديل لكود تصدير بيانات لملف الاكسل بحيث لا يقوم بتصدير الاعمده التي اقوم باخفاها هيك احتاج تكون الطريقة 

مودتي للجميع


RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - Finish - 10-08-18

ضع شرط التحقق من ظهور العمود بين الحلقتين For i و For j
PHP كود :
For As Integer 0 To dgv1.Columns.Count 1
    If dgv1
.Columns(i).Visible False Then Continue For
 
       For j As Integer 0 To dgv1.Rows.Count 



RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - Marwan9990 - 10-08-18

(10-08-18, 12:06 AM)Finish كتب : ضع شرط التحقق من ظهور العمود بين الحلقتين For i و For j
PHP كود :
For As Integer 0 To dgv1.Columns.Count 1
    If dgv1
.Columns(i).Visible False Then Continue For
 
       For j As Integer 0 To dgv1.Rows.Count 

اشكرك عزيزي على سرعة الرد 
طبقة الكود لما عملت تصدير بيانات الاعمده اختفو فعلا ولكن تبقا مشكله وحده اسم العمود لا يزال موجود 
الي انحذف بياناته ولكن الاسم موجود 
الا يمكن ايضا حذف الاسم ؟


RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - Finish - 10-08-18

تعديل الكود
PHP كود :
Dim MsExcel CreateObject("Excel.Application")
MsExcel.Workbooks.Add()

Dim c() = (From x In dgv1.Columns Where x.Visible).ToArray

For As Integer 0 To c.Count 1
    MsExcel
.Cells(1).Value c(i).HeaderText
Next

For As Integer 0 To c.Count 1
    For j 
As Integer 0 To dgv1.Rows.Count 1

        MsExcel
.Columns.HorizontalAlignment 3
        MsExcel
.Columns.Font.Name "Times New Roman"
 
       MsExcel.Columns.EntireColumn.AutoFit()
 
       MsExcel.Rows.Item(1).Font.size 13
        MsExcel
.Cells(21).Value dgv1.Rows(j).Cells(i).Value

    Next
Next

MsExcel
.Visible True 



RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - elgokr - 10-08-18

(09-08-18, 11:54 PM)Marwan9990 كتب : اسعد الله اوقاتكم جميعا احبائي 

استفسار  ي اخوان 
انا معي فورم يحتوي على جريد فيو يعرض لي بيانات من قاعدة بيانات اكسس 

استخدمة مع جريد فيو الموضوع التالي .. وهو خيار اخفاء او اظهار بعض الاعمده في جريد فيو
http://vb4arb.com/vb/showthread.php?tid=15554

لحد الحين كل شي حلو 
 ايضا معي في الفورم كود التالي .. وهو كود تصدير بيانات جريد فيو الى ملف اكسل 
PHP كود :
Try
 
           Dim MsExcel CreateObject("Excel.Application")
 
           MsExcel.Workbooks.Add()
 
           For i As Integer 0 To dgv1.Columns.Count 1
                MsExcel
.Cells(1).Value dgv1.Columns(i).HeaderText
            Next
            For i 
As Integer 0 To dgv1.Columns.Count 1
                For j 
As Integer 0 To dgv1.Rows.Count 1

                    MsExcel
.Columns.HorizontalAlignment 3
                    MsExcel
.Columns.Font.Name "Times New Roman"
 
                   MsExcel.Columns.EntireColumn.AutoFit()
 
                   MsExcel.Rows.Item(1).Font.size 13
                    MsExcel
.Cells(21).Value dgv1.Rows(j).Cells(i).Value

                Next
            Next
            MsExcel
.Visible True
        Catch ex 
As Exception
            MsgBox
(ex.Message)
 
       End Try 


المشكلة الان انا اقوم بعملية اخفاء بعض الاعمده بستخدام الموضوع وطريقة التي سبق وذكرتها في الاعلى 
ولكن لما اذهب اعمل تصدير لملف الاكسل يقوم بتصدير بيانات التي قمت ب اخفاها ايضا 

فما هو الحل ؟  ياليت اذا احد معه حل للمشكلة يفيدني ب طريقة او تعديل لكود تصدير بيانات لملف الاكسل بحيث لا يقوم بتصدير الاعمده التي اقوم باخفاها هيك احتاج تكون الطريقة 

مودتي للجميع


حتى ان لا تشتت على نفسك

فقط تعال على كود الاستعلام
وبدلاً من استخدام
كود :
SELECT *

فقط اجعلها
كود :
SELECT id, name1, name2

حيث ان الاسماء هى عبارة عن الاعمدة التى تحتاج الى ظهورها
وبكده ستوفر عدد اسطر من اخفاء الاعمدة فى الداتا جريد
وكذلك فى التصدير

تحياتى لك
وتمنياتى لك التوفيق



RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - Marwan9990 - 10-08-18

(10-08-18, 05:08 AM)elgokr كتب :
(09-08-18, 11:54 PM)Marwan9990 كتب : اسعد الله اوقاتكم جميعا احبائي 

استفسار  ي اخوان 
انا معي فورم يحتوي على جريد فيو يعرض لي بيانات من قاعدة بيانات اكسس 

استخدمة مع جريد فيو الموضوع التالي .. وهو خيار اخفاء او اظهار بعض الاعمده في جريد فيو
http://vb4arb.com/vb/showthread.php?tid=15554

لحد الحين كل شي حلو 
 ايضا معي في الفورم كود التالي .. وهو كود تصدير بيانات جريد فيو الى ملف اكسل 
PHP كود :
Try
 
           Dim MsExcel CreateObject("Excel.Application")
 
           MsExcel.Workbooks.Add()
 
           For i As Integer 0 To dgv1.Columns.Count 1
                MsExcel
.Cells(1).Value dgv1.Columns(i).HeaderText
            Next
            For i 
As Integer 0 To dgv1.Columns.Count 1
                For j 
As Integer 0 To dgv1.Rows.Count 1

                    MsExcel
.Columns.HorizontalAlignment 3
                    MsExcel
.Columns.Font.Name "Times New Roman"
 
                   MsExcel.Columns.EntireColumn.AutoFit()
 
                   MsExcel.Rows.Item(1).Font.size 13
                    MsExcel
.Cells(21).Value dgv1.Rows(j).Cells(i).Value

                Next
            Next
            MsExcel
.Visible True
        Catch ex 
As Exception
            MsgBox
(ex.Message)
 
       End Try 


المشكلة الان انا اقوم بعملية اخفاء بعض الاعمده بستخدام الموضوع وطريقة التي سبق وذكرتها في الاعلى 
ولكن لما اذهب اعمل تصدير لملف الاكسل يقوم بتصدير بيانات التي قمت ب اخفاها ايضا 

فما هو الحل ؟  ياليت اذا احد معه حل للمشكلة يفيدني ب طريقة او تعديل لكود تصدير بيانات لملف الاكسل بحيث لا يقوم بتصدير الاعمده التي اقوم باخفاها هيك احتاج تكون الطريقة 

مودتي للجميع


حتى ان لا تشتت على نفسك

فقط تعال على كود الاستعلام
وبدلاً من استخدام
كود :
SELECT *

فقط اجعلها
كود :
SELECT id, name1, name2

حيث ان الاسماء هى عبارة عن الاعمدة التى تحتاج الى ظهورها
وبكده ستوفر عدد اسطر من اخفاء الاعمدة فى الداتا جريد
وكذلك فى التصدير

تحياتى لك
وتمنياتى لك التوفيق

اهلا بك ي اخي الكريم 
مشكله عزيز انا احتاج في اول اقلاع للفورم تكون الجريد فيو معباه بكل حقول الجدول كامل
بعدها المستخدم رح يختار الحقول الي يبيها والباقي رح يخفيها 
بعدها يقوم بعملية تصدير الحقول التي لم يتم اخفاها الى ملف الاكسل حتى يستكمل باقي العمل



ياليت اذا فيه طريقه اخفي العمود كامل تفيدني اخي 
الطريقة التي سبق وكتبها الي اخي الفاضل (
Finish )
ترسل بيانات داتا جريد فيو فعلا بدون بيانات الحقول كذا كويس
ولكن ايضا المشكلة باقيه ترسل اسم العمود انا ابي العمود ما يظهر اسمه ايضا
اي عمود عامل له اخفاء قبل تصدير الى اكسل لا احتاج ان يعمل له تصدير

ياليت اذا تعرف طريقة تفيدني ابها لتعديل على كود الاكسل

مودتي لك


RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - mrnooo2000 - 10-08-18

جرب هذا الكود أخى 

كود :
       Try
           Dim MsExcel = CreateObject("Excel.Application")
           MsExcel.Workbooks.Add()
           Dim C As Integer = 0
           For i As Integer = 0 To dgv1.Columns.Count - 1
               If dgv1.Columns(i).Visible = True Then
                   C += 1
                   MsExcel.Cells(C).Value = dgv1.Columns(i).HeaderText
               End If
           Next
           C = 0
           For i As Integer = 0 To dgv1.Columns.Count - 1
               If dgv1.Columns(i).Visible = False Then Continue For
               C += 1
               For j As Integer = 0 To dgv1.Rows.Count - 1
                   MsExcel.Columns.HorizontalAlignment = 3
                   MsExcel.Columns.Font.Name = "Times New Roman"
                   MsExcel.Columns.EntireColumn.AutoFit()
                   MsExcel.Rows.Item(j + 1).Font.size = 13
                   MsExcel.Cells(j + 2, C).Value = dgv1.Rows(j).Cells(i).Value
               Next
           Next
           MsExcel.Visible = True
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try



RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - Marwan9990 - 10-08-18

(10-08-18, 12:46 PM)mrnooo2000 كتب : جرب هذا الكود أخى 

كود :
       Try
           Dim MsExcel = CreateObject("Excel.Application")
           MsExcel.Workbooks.Add()
           Dim C As Integer = 0
           For i As Integer = 0 To dgv1.Columns.Count - 1
               If dgv1.Columns(i).Visible = True Then
                   C += 1
                   MsExcel.Cells(C).Value = dgv1.Columns(i).HeaderText
               End If
           Next
           C = 0
           For i As Integer = 0 To dgv1.Columns.Count - 1
               If dgv1.Columns(i).Visible = False Then Continue For
               C += 1
               For j As Integer = 0 To dgv1.Rows.Count - 1
                   MsExcel.Columns.HorizontalAlignment = 3
                   MsExcel.Columns.Font.Name = "Times New Roman"
                   MsExcel.Columns.EntireColumn.AutoFit()
                   MsExcel.Rows.Item(j + 1).Font.size = 13
                   MsExcel.Cells(j + 2, C).Value = dgv1.Rows(j).Cells(i).Value
               Next
           Next
           MsExcel.Visible = True
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

اهلا اخي الكريم
الكود شغال مية ميه يا مبببببببدع ربي يرزقك جنات النعيم يا رب انته وجميع احباب قلبك


وشكر موصول ايضا لجميع من ساهم بمشاركة في مساعدتي لحل هذا المشكلة في هذا الموضوع 

مودتي لكم جميعا


RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - elgokr - 10-08-18

الان الصورة كملت عن ما تريده بعد شرحك 
لماذا تعرض الاعمدة كاملاً

وكلاً من Finish و mrnooo2000 
ما قصر فى تقديم المساعدة الكاملة

فبارك الله لهم فيما يتم بتقديمه من مساعدة دائماً

فتحياتى لك ولهم
وتمنياتى لكم التوفيق



RE: مشكلة في تصدير بيانات جريد فيو الى ملف الاكسل - Marwan9990 - 10-08-18

(10-08-18, 07:32 PM)elgokr كتب :
الان الصورة كملت عن ما تريده بعد شرحك 
لماذا تعرض الاعمدة كاملاً

وكلاً من Finish و mrnooo2000 
ما قصر فى تقديم المساعدة الكاملة

فبارك الله لهم فيما يتم بتقديمه من مساعدة دائماً

فتحياتى لك ولهم
وتمنياتى لكم التوفيق

فعلا صار ميه ميه انا شارك للجميع على ما قدموه واعتذر ل اخي فنيش انا ما انتبهت انه قام ب تعديل الكود للمرة الثانية لم انتبه لرده السموحه منه 

ربي يوفقكم جميعا يا رب 

وللجميع تم عمل احلا تقيم تستاهلون وزود

مودتي لكم