12-10-13, 05:47 PM
السلام عليكم...
يمكننا تصدير بيانات من برنامجنا إلى ملف Word و ذلك باستخدام مكتبة Microsoft Word Object Library و الاطلاع على تعليمات Word لمعرفة كيفية استخدام الكائنات و الوظائف في تلك المكتبة.
المثال التالي يبين كيفية تصدير بيانات ListView إلى ملف Word في شكل جدول.
1. من القائمة Project انقر الأمر References.
2. في نافذة الـ References ابحث عن البند Microsoft Word x.x Object Library و قم بتحديده - أي إظهار إشارة صح بجانبه ثم انقر OK (الرمز x.x هو رقم نسخة Word و قد تختلف من جهاز إلى جهاز حسب نسخة Word المركبة).
3. أضف إلى النافذة مكون ListView (تحتاج إلى إضافة Windows Common Controls) و قم بإعداد أعمدته و بنوده حسب ما لديك.
4. أضف زر أمر لتصدير البيانات. في كود هذا الزر اكتب ما يلي:
* عند تشغيل الكود السابق و النقر على الزر سيتم تشغيل برنامج Word و إظهاره محتوياً على البيانات المصدرة. يمكن للمستخدم حينها حفظ المستند أو إغلاقه دون حفظ.
* إذا أردنا تصدير البيانات و حفظ الملف دون تدخل المستخدم فلا داعي لإظهار Word، و عليه فإننا بدل السطر: objWord.Visible = True نكتب السطرين التاليين:
نرجو الاستفادة و السلام.
يمكننا تصدير بيانات من برنامجنا إلى ملف Word و ذلك باستخدام مكتبة Microsoft Word Object Library و الاطلاع على تعليمات Word لمعرفة كيفية استخدام الكائنات و الوظائف في تلك المكتبة.
المثال التالي يبين كيفية تصدير بيانات ListView إلى ملف Word في شكل جدول.
1. من القائمة Project انقر الأمر References.
2. في نافذة الـ References ابحث عن البند Microsoft Word x.x Object Library و قم بتحديده - أي إظهار إشارة صح بجانبه ثم انقر OK (الرمز x.x هو رقم نسخة Word و قد تختلف من جهاز إلى جهاز حسب نسخة Word المركبة).
3. أضف إلى النافذة مكون ListView (تحتاج إلى إضافة Windows Common Controls) و قم بإعداد أعمدته و بنوده حسب ما لديك.
4. أضف زر أمر لتصدير البيانات. في كود هذا الزر اكتب ما يلي:
كود :
Private Sub Command1_Click()
Dim objWord As Word.Application
Dim oDoc As Word.Document
Dim oTable As Word.Range
Dim i As Integer
Dim j As Integer
Dim sTemp As String
Set objWord = CreateObject("word.application") ' إنشاء نسخة من برنامج وورد
Set oDoc = objWord.Documents.Add ' إنشاء مستند جديد
Set oTable = oDoc.Range ' إنشاء نطاق نصي في المستند
' إعداد عناوين الأعمدة
sTemp = ListView1.ColumnHeaders(1).Text
For j = 2 To ListView1.ColumnHeaders.Count
sTemp = sTemp & vbTab & ListView1.ColumnHeaders(j).Text
Next
' إعداد البيانات
' لاحظ أن خلايا الصف الواحد مفصولة بالمفتاح تاب، و الصفوف مفصولة بالمفتاح إنتر
For i = 1 To ListView1.ListItems.Count
sTemp = sTemp & vbCrLf & ListView1.ListItems(i).Text
For j = 2 To ListView1.ColumnHeaders.Count
sTemp = sTemp & vbTab & ListView1.ListItems(i).SubItems(j - 1)
Next
Next
oTable.Text = sTemp ' إرسال البيانات إلى وورد كنص
' تحويل نص النطاق إلى جدول
oTable.ConvertToTable vbTab, , , , WdTableFormat.wdTableFormatElegant ' Formatted table
' oTable.ConvertToTable vbTab, , , , , , , , , , , , , , , True ' Ordinary table
' oTable.ConvertToTable vbTab ' No borders
' إظهار برنامج وورد - قد لا يظهر في مقدمة الشاشة لكنك تجده في شريط المهام
objWord.Visible = True
' تنظيف الذاكرة
Set objWord = Nothing
Set oDoc = Nothing
Set oTable = Nothing
End Sub
* عند تشغيل الكود السابق و النقر على الزر سيتم تشغيل برنامج Word و إظهاره محتوياً على البيانات المصدرة. يمكن للمستخدم حينها حفظ المستند أو إغلاقه دون حفظ.
* إذا أردنا تصدير البيانات و حفظ الملف دون تدخل المستخدم فلا داعي لإظهار Word، و عليه فإننا بدل السطر: objWord.Visible = True نكتب السطرين التاليين:
كود :
oDoc.SaveAs2 "C:\Users\user1\Desktop\MyFile.docx" ' حفظ الملف مع تحديد مسار و اسم الملف
objWord.Quit ' إغلاق وورد
نرجو الاستفادة و السلام.