السلام عليكم ورحمة الله وبركاته
في البداية ترددت في وضع الموضوع في منتدى #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 .