منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : إضافة إشارة مرجعية في رأس صفحة ملف وورد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

في البداية ترددت في وضع الموضوع في منتدى #C أو منتدى التقارير حتى وضعته هنا ...

لدي ملف وورد ومحتاج أرسل له إشارة مرجعية Bookmarke فتكون الطريقة كالتالي:

إقتباس :document.Bookmarks.Add(entry.Key).Range.Text = entry.Value;

المشكلة التي أواجهها هي في حالة كانت الإشارة المرجعية في رأس الصفحة !!!
في الطريقة السابقة لا يمكن إضافة الإشارة للملف إلا إذا كانت في جسم الصفحة body ؟

فما هي الطريقة الصحيحة لإضافة معلومات في رأس وذيل الصفحة ؟
الحمد لله رب العالمين والصلاة والسلام علي نبينا محمد وبعد ،،،

بفضل من الله ونعمة وجدت الحل بعد بحث استمر لأربع أيام تقريباً ، المسألة أولاً وأخيراً توفيق من الله ثم اكتشفت انه يوجد خلل في طريقة بحثي عن المعلومة ...

كنت ابحث عن المعلومة للغة #C ولم اجد ما أريد حسب ما بحثت ولكن غيرت الطريقة للبحث عن vb.net فوجدت الحل وتم ترجتمه للـ #C

الحل في هذا الموضوع : http://stackoverflow.com/questions/26707...mmatically

وطبعاً عدلت عليه حتى يناسب ما أريد فجعلته بهذه الطريقة

أضفت هذا الكود في Class
كود :
       public static Dictionary<string, string> InfoAPP = new Dictionary<string, string>()
       {
       {"bm1", "1"},
        {"bm2", "2"},
        {"bm3", "3"},
        {"bm4", "4"},
       {"bm5", "5"},
       };

ثم استدعيته بهذه الطريقة

ملاحظة ( تستطيع حذف الشرط if (document.Bookmarks.Exists(pair.Key)) وسيعمل معك بلا مشاكل ) ولمن لديه معلومة عن أهمية هذا الشرط فليوضحه لنا.
كود :
               Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
               Microsoft.Office.Interop.Word.Document document = new Microsoft.Office.Interop.Word.Document();
               document = application.Documents.Add(Template: @"C:\Report1.docx");
               application.Visible = true;

               // بهذه الطريقة استطعت إضافة جميع الإشارات المرجعية بشفرة مختصرة ولله الحمد
               Microsoft.Office.Interop.Word.Bookmark bm;
               Microsoft.Office.Interop.Word.Range rng;
                foreach (var pair in Class1.InfoAPP)
                {
                    if (document.Bookmarks.Exists(pair.Key))
                    {
                        bm = document.Bookmarks[pair.Key];
                        rng = bm.Range;
                        rng.Text = pair.Value;
                        document.Bookmarks.Add(pair.Key, rng);
                        bm = null;
                        rng = null;
                    }
                }



كان في قديماً ملف باسم MSwordDllFiles.dll عمله شخص اظن اسمه عبد الله الدوسري اسأل الله له التوفيق والفلاح في الدنيا والآخرة ، كان يعمل معي بشكل كامل ولكن عندما انتقلت لتقنية wpf وجدت مشكلة  في الملف بحيث انه يستدعي نافذة Form وهذا ممنوع في wpf فظهر خطأ ومن هنا بدأت رحلة البحث عن كيفية إضافة البيانات من wpf with #C إلى ملف الوورد word document .
السلام عليكم

للإستزاده وجدت هذا الرابط المفيد لنفس الموضوع ويحل نفس المشكلة ...
http://blog.degree.no/2012/10/microsoft-...matically/