الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار في ادراج بيانات في الاكسل

بدأه & الأمل & في 12 سبتمبر 2012 · 15 رد · 2,247 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخوتي الكرام

حابة استفسرعن بعض النقاط كي اعرف طرح سوالي

جزاكم الله خيرا

السوال

لدي داتا قرايد بها ثلاثة عمدة يتم ادخال بيانات في العمود الاول والثاني عبارة عن ارقام يتم جمعهم ووضعهم في العمود الثالث

مسح بيانات العمودين فقط الابقاء على بيانات العمود الثالث

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

وهكذا مع بدابة المواد

علما انه عندي

كود حفظ في الاكسل

كودالاستيراد من الاكسل

بمعنى بعد عملية الجمع

مسح بيانات العمودين الذي تم جمعهم

جعل العمود الثالث للقراءة مثلا

ادراج بيانات اخرى تحل محل البيانات الممسوحة

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

جزاكم الله خيرا

#2

يا ريت وضع مثال للتعديل عليه

#3

السلاكم عليكم ..

رابط مفيد (عند التصدير من datagridview الى اكسل يظهر الحقول المخفية فارغة كيف يمكن عدم ظهورها نهائياً؟) هنا

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#4

Excel.Application

Microsoft.Office.Interop.Excel.Workbook

Microsoft.Office.Interop.Excel.Worksheet

اخي الكريم حملت المثال لكن ظهر لي خطاء في السطر 5/6/7

علما اني اعمل على فيجول 2008

جزاك الله خيرا

#5

السلام عليكم ...

  1. افتح الــ reference للمشروع , هل يوجد أي منها عليه إشارة صفراء ...تدل على انه غير موجود ...؟
  2. يجب ان تكون الــ assemblies الخاصة بالتعامل مع الأوفيس مثبتة , و يمكن التثبيت من قرص الــ Office , الخيار (.NET Programability Support)
  3. Aa159923.officeprimaryinteropassembliesfaq_fig1%28l=en-us,v=office.11%29.gif
  4. و اعتقد أنه يمكن التحميل من :
    1. 2007 Microsoft Office System Update: Redistributable Primary Interop Assemblies هنا (2007).
    2. Office 2003 Update: Redistributable Primary Interop Assemblies هنا(2003)

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#6

اخوتي الكرام

هذا رابط للملف

http://file9.9q9q.net/Download/48198485/5.rar.html

اخي الكريم houssam11350_11350 الصورة الموجودة عندي مختلفة

ياريت تشوف لي المثال جزاكم الله خيرا

#7

السلام عليكم ...

  1. لم استطع تحميل الملف , يرجى وضعه في مرفقات المشاركة , اضغطوا استخدم المحرر الكامل (في صندوق الرد), و يظهر مكان لرفع الملفات ... نختار الملف ثم نضغط رفع الملف .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#8

أخي الكريم

هذارابط الملف

5.rar

#9

السلام عليكم ..

قكت بتغير مسار الحفظ إلى d:\test1.xls بدلا من c:\test1.xls لأن القرص C غالبا يحتاج إلى صلاحيات كي تقوم البرامج بإنشاء ملفات عليه (إلا إذا تم تشغيلها run as administrator فربما يعمل). .. طبعا بعد التغيير انه يعمل بالإستيراد و التصدير ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#10

اخي الكريم

اناليس عندى مشكلة في التصدير او الاستيراد لكن المطلوب

جمع العمود (dd)+العمود(ddd)وضع الناتج في العمود(dddd) هنا الكود معروف

بعد عملية الجمع النقرعلى الزرللقراءة فقط وذلك لجعل العمود(dddd) للقراءة فقط

مسح بيانات العمودين(dd)و(ddd)

استيراد ملف اكسل الاستيراد يكون للعمودين(dd)و(ddd) اللذان تم مسحهما

تفعيل العامود (dddd)

جمع العمودين واضافة الناتج الى العامود (dddd)

وهكذا الى ان انتهى من جمميع المودا

بمعنى المطلوب

كود مسح بيانات العمودين(dd)و(ddd)

كود استيرادامن اكسل للعمودين(dd)و(ddd)

كود تحميل البيانات من اكسل من اول صف (اي ليس له علاقة ببيانات عمود dddd)

جزاكم الله خيرا

#11

السلام عليكم ..

  1. كود المسح :
     Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
        	For Each row As DataRow In DataSet1.Tables("Table1").Rows
            	row("dd") = ""
            	row("ddd") = ""
        	Next
    	End Sub

  2. كود الاستيراد من الأكسل :
     Private Sub btnMyLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMyLoad.Click
        	Dim ofd As New OpenFileDialog()
        	ofd.Filter = "Classeurs Excel (*.xls)|*.xls"
        	If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
            	Dim Excel = CreateObject("Excel.Application")
            	Dim MsExcel = Excel.Workbooks.Open(ofd.FileName, Password:="12345")
            	If MsExcel.Application.ActiveSheet.UsedRange.Columns.Count - 1 > DataSet1.Tables("Table1").Columns.Count - 1 Then
                	ofd.Dispose()
                	MsExcel.Close(False)
                	MsExcel = Nothing
                	Excel.Quit()
                	Excel = Nothing
                	MsgBox("الحقول في ملف اكسل اكبر من حقول قاعدة البيانات", 16, "تنبيه")
                	Exit Sub
            	End If
            	Try
                	Application.DoEvents()
                	For j As Integer = 0 To MsExcel.Application.ActiveSheet.UsedRange.Rows.Count - 1
                    	Dim row As DataRow = DataSet1.Tables("Table1").Rows(j)
                    	row("dd") = MsExcel.Application.Cells(j + 1, 3).Value()
                    	row("ddd") = MsExcel.Application.Cells(j + 1, 4).Value()
                	Next
    
                	Application.DoEvents()
                	Me.BindingContext(DataSet1, "Table1").Position = Me.BindingContext(DataSet1, "Table1").Count - 1
                	ofd.Dispose()
                	MsExcel.Close(False)
                	MsExcel = Nothing
                	Excel.Quit()
                	Excel = Nothing
            	Catch ex As Exception
                	ofd.Dispose()
                	MsExcel.Close(False)
                	MsExcel = Nothing
                	Excel.Quit()
                	Excel = Nothing
                	MsgBox(ex.Message)
            	End Try
        	End If
    	End Sub

  3. أتمنى أن لا أكون قد نسيت شئ و لان الطلب الثالث و هو نفس الثاني , مع تغيير أسمائ الأعمدة المطلوب استيرادها و وضع رقم العمود المطلوب من الأكسل

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#12

الله ينور عليك دنيا واخرة ويجعل لك من كل هم فرجا ومن كل ضيق مخرجا اللهم امين

تعبت من كثر المحاولات

والحمد لله هذا هو الحل المطلوب

#13

اخي الكريم

عندي داتا قرابد بها عدة شيك بوكس

بعد تحديد الشيك يتم حفظ البيانات في الاكسل

الحفظ في الاكسل يكون TRUE//FALSE

السوال

كيف احفظ البيانات في الاكسل كل شيك تم اختياره يكتب ف الاكسل (1)الشيك الذي لم يتم اختياره يكتب في الاكسل (0)اويبقى فارق

اتمنى وصلت الفكرة

جزاك الله خيرا

#14

السلام عليكم ..

يكون كود التصدير للإكسل بالشكل :

   Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
    	Me.DataGridView1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 
    	Dim MsExcel = CreateObject("Excel.Application")
    	Dim ExcelBook = MsExcel.Workbooks.Add
    	Try
        	For i As Integer = 0 To DataGridView1.Columns.Count - 1
            	For j As Integer = 0 To DataGridView1.Rows.Count - 1

                	MsExcel.Columns.HorizontalAlignment = 3
                	MsExcel.Columns.Font.Name = "Times New Roman"
                	MsExcel.Rows.Item(j + 1).Font.Bold = 1
                	MsExcel.Rows.Item(j + 1).Font.size = 14

                	Dim boolValue As Boolean

                	If TypeOf (DataGridView1.Rows(j).Cells(i)) Is DataGridViewCheckBoxCell Then
                    	If DataGridView1.Rows(j).Cells(i).Value() Is Nothing Then
                        	boolValue = False
                    	Else
                        	boolValue = DirectCast(DataGridView1.Rows(j).Cells(i).Value(), Boolean)
                    	End If

                    	If boolValue = True Then
                        	MsExcel.Cells(j + 1, i + 1).Value = "1"
                    	Else
                        	MsExcel.Cells(j + 1, i + 1).Value = "0"
                    	End If
                	Else
                    	MsExcel.Cells(j + 1, i + 1).Value = DataGridView1.Rows(j).Cells(i).Value()

                	End If



            	Next
        	Next
        	Application.DoEvents()
        	ExcelBook.password = "12345"
        	ExcelBook.SaveAs("d:\test1.xls")
        	ExcelBook.Close(False)
        	ExcelBook = Nothing
        	MsExcel.Quit()
        	MsExcel = Nothing
        	MsgBox("تم")
    	Catch ex As Exception
        	ExcelBook.Close(False)
        	ExcelBook = Nothing
        	MsExcel.Quit()
        	MsExcel = Nothing
        	MsgBox(ex.Message)
    	End Try
	End Sub

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 14 سبتمبر 2012 في 01:40

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#15

زادك الله من فضله

اخي الكريم لي استفسارات بخصوص الصورة التالية :

1/عند التعامل مع البرنامج اولا

(العمود( (0)(d))الترقيم التلقائي العمود(1)الاسئلة (2و3 الخيارات))

ثم يصبح

(العمود (3)الترقيم التلقائي العمود(0)الاسئلة (2و1 الخيارات))

وهذا يؤثر على البرنامج

2/عند ترقيم الداتا قرايد يكون الترقيم الى 9 ثم يبدا العد مرة ثانية الى 9 وهكذا

لماذا لايكون الاعداد ترقيم تلقائي

3/كيف ممكن عند اختيار شيك يتم تعطيل الشيك الاخر

4/ في حال عندي عدد(4)شيك عند اختيار احدهم كيف يتم تعطيل الثلاثة الباقية

جزاكم الله خيرا

post-76947-087600700 1347602263_thumb.pn

المرفقات
صورة1.png

تم تعديل هذه المشاركة بواسطة & الأمل & في 14 سبتمبر 2012 في 09:20

#16

السلام عليكم ...

  1. بالنسبة لترتيب الأعمدة , فهي ستظهر كما تم وضعها في عبارة الــ SELECT , أو يمكن إضافة الأعمدة بشكل يديوي للــ Grid من Columns ثم Add ثم نحدد لعمود الخاصية DataPropertyName , أي ايم العمود الذي سيعرض منه البيانات .
  2. uqakf.jpg
  3. بالنسبة للترقيم , ما هو كود الترقيم المستخدم ..؟
  4. الــ CheckBox له الحدث CheckChanged الذي يتم تفعيله عندما , يتم تغيير الــ Check فيه :
    Private Sub Option1CheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Option1CheckBox.CheckedChanged
    
        	If Option1CheckBox.Checked = True Then
    
            	Option4CheckBox.Enabled = False
            	Option2CheckBox.Enabled = False
            	Option3CheckBox.Enabled = False
    
        	End If
    	End Sub

    و لكن ربما استخدام radioButton هو الأفضل .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…