كيفية إنشاء المستندات في كلمة. برنامج إنشاء نماذج المستندات في Word

كيفية إنشاء المستندات في كلمة.  برنامج إنشاء نماذج المستندات في Word
كيفية إنشاء المستندات في كلمة. برنامج إنشاء نماذج المستندات في Word

نواصل موضوع العمل مع النماذج في Word الذي بدأناه سابقًا. في المقالات السابقة، نظرنا إلى النماذج فقط من وجهة نظر "المستخدم المتقدم"، أي. لقد أنشأنا مستندات كان من السهل تعبئتها يدويًا. أريد اليوم أن أقترح توسيع هذه المهمة ومحاولة استخدام آلية التحكم في المحتوى لإنشاء المستندات.

قبل أن نبدأ بمهمتنا المباشرة، أريد أن أقول بضع كلمات حول كيفية تخزينها مستندات Wordالبيانات الخاصة بعناصر التحكم في المحتوى (سأحذف عمدًا كيفية ربطها بمحتويات المستند في الوقت الحالي، ولكنني آمل أن أعود إلى هذا يومًا ما في المقالات المستقبلية).

سؤال منطقي - ما هو؟ itemProps1.xmlومكونات مماثلة؟ تقوم هذه المكونات بتخزين أوصاف مصادر البيانات. على الأرجح، كما خطط المطورون، بالإضافة إلى ملفات XML المضمنة في المستند، كان من المفترض استخدام الآخرين، ولكن حتى الآن تم تنفيذ هذه الطريقة فقط.

لماذا هم مفيدون لنا؟ itemPropsX.xml؟ حقيقة أنهم يدرجون مخططات XML (ملفاتهم targetNamespace)، والتي تستخدم في الأصل itemX.xml. هذا يعني أنه إذا قمنا بتضمين أكثر من ملف XML مخصص في المستند، فللعثور على الملف الذي نحتاجه، نحتاج إلى المرور عبره itemPropsX.xmlالمكونات والعثور عليها المخطط المطلوب، وبالتالي ضرورية itemX.xml.

الآن شيء آخر. لن نقوم بتحليل الروابط بين المكونات يدويًا والبحث عن العناصر التي نحتاجها، وذلك باستخدام واجهة برمجة تطبيقات التغليف الأساسية فقط! بدلاً من ذلك، سنستخدم Open XML SDK (إصداراتها متاحة عبر NuGet). بالطبع، لم نقل كلمة واحدة عن واجهة برمجة التطبيقات هذه من قبل، ولكن بالنسبة لمهمتنا، فإن الحد الأدنى مطلوب منها وستكون جميع التعليمات البرمجية شفافة تمامًا.

حسنًا، لقد انتهينا من المقدمة الأساسية، ويمكننا أن نبدأ بالمثال.

وفقا للتقاليد المعمول بها، سنأخذ نفس "تقرير الاجتماع" الذي رسمناه في المقال. اسمحوا لي أن أذكرك أن هذا هو شكل قالب المستند:

وهذا هو ملف XML الذي تم ربط حقول المستند به

< meetingNotes xmlns ="urn:MeetingNotes" subject ="" date ="" secretary ="" > < participants > < participant name ="" /> < decisions > < decision problem ="" solution ="" responsible ="" controlDate ="" />

الخطوة 1: إنشاء نموذج بيانات

في الواقع، مهمتنا ليست مجرد إنشاء مستند، بل إنشاء (على الأقل في نسخة مسودة) أداة سهلة الاستخدامللاستخدام من قبل كل من المطور والمستخدم.

ولذلك، فإننا سوف نعلن عن النموذج في شكل بنية فئة C#:

فئة عامة MeetingNotes ( public MeetingNotes() ( المشاركون = قائمة جديدة ()؛ القرارات = قائمة جديدة ()؛ ) سلسلة عامة الموضوع ( get; set; ) تاريخ ووقت عام تاريخ ( get; set; ) سلسلة عامة سكرتير ( get; set; ) قائمة عامة المشاركون (احصل على؛ مجموعة؛) القائمة العامة القرارات ( get; set; ) ) قرار فئة عامة ( مشكلة سلسلة عامة ( get; set; ) سلسلة عامة الحل ( get; set; ) سلسلة عامة مسؤولة ( get; set; ) تاريخ ووقت ControlDate العام ( get; set; ) ) عام مشارك في الفصل (اسم السلسلة العامة ( get; set; ) )

بشكل عام، لا يوجد شيء خاص، باستثناء أنه تمت إضافة السمات للتحكم في تسلسل XML (نظرًا لأن الأسماء الموجودة في النموذج وXML المطلوب مختلفة قليلاً).

الخطوة 2: إجراء تسلسل للنموذج أعلاه إلى XML

المهمة تافهة من حيث المبدأ. ما يسمى "خذ XmlSerializer المفضل لدينا وانطلق"، إن لم يكن لشيء واحد لكن

لسوء الحظ، في النسخة الحاليةيبدو أن Office به خطأ، وهو كما يلي: إذا كان في ملف XML المخصص قبلمن خلال الإعلان عن مساحة الاسم الرئيسية (التي يجب أن يأخذ Word منها عناصر لعرضها)، قم بإعلان مساحة أخرى، ثم يبدأ عرض عناصر التحكم المتكررة في المحتوى بشكل غير صحيح (يتم عرض عدد العناصر فقط كما هو الحال في القالب نفسه - أي قسم التكرار لا يعمل ).

أولئك. هذا هو ملف XML الذي يعمل:

< test xmlns ="urn:Test" attr1 ="1" attr2 ="2" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

وهذا أيضًا:

< test xmlns ="urn:Test" attr1 ="1" attr2 ="2" xmlns:t ="urn:TTT" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

ولكن هذا لم يعد هناك:

< test xmlns:t ="urn:TTT" xmlns ="urn:Test" attr1 ="1" attr2 ="2" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

لقد حاولت إرسال خطأ إلى دعم Microsoft على Connect، ولكن لسبب ما لا يمكنني الوصول لإرسال أخطاء Office. ولم تساعد المناقشة في منتدى MSDN أيضًا.

بشكل عام، الحل الضروري. إذا قمنا بإنشاء ملف XML يدويًا، فلن تكون هناك أية مشكلات - لكنا قد قمنا بكل شيء بأنفسنا. ومع ذلك، في هذه الحالة، أريد حقًا استخدام XmlSerializer القياسي، والذي يضيف بشكل افتراضي العديد من مساحات الأسماء الخاصة به إلى XML الناتج، حتى لو لم يتم استخدام مساحات الأسماء هذه.

سنقوم بمنع إخراج مساحات الأسماء الخاصة بنا تمامًا في XmlSerializer. صحيح أن هذا النهج لن ينجح إلا إذا لم يكن بحاجة إليه حقًا (وإلا فستتم إضافته قبل أسلوبنا فقط).

في الواقع، الكود بأكمله (بشرط أن يكون المتغير ملاحظات الإجتماعيحتوي على كائن تم تعبئته مسبقًا من النوع MeetingNotes):

var serializer = new XmlSerializer(typeof (MeetingNotes));
var serializedDataStream = new MemoryStream();

مساحات الأسماء var = new XmlSerializerNamespaces();
namespaces.Add("" , "" );

serializer.Serialize(serializedDataStream, MeetingNotes, namespaces);
serializedDataStream.Seek(0, SeekOrigin.Begin);

الخطوة 3. أدخل ملف XML الناتج في مستند Word.

وهنا نتصرف على النحو التالي:

  • انسخ القالب وافتح النسخة
  • ابحث عن ملف XML المخصص المطلوب فيه (ابحث حسب مساحة الاسم "الجرّة: ملاحظات الاجتماع")
  • استبدل محتويات المكون بـ XML الخاص بنا

File.Copy(templateName, resultDocumentName, true ); باستخدام (var document = WordprocessingDocument.Open(resultDocumentName, true)) ( var xmlpart = document.MainDocumentPart.CustomXmlParts .Single(xmlPart => xmlPart.CustomXmlPropertiesPart.DataStoreItem.SchemaReferences.OfType ().Any(sr => sr.Uri.Value == "urn:MeetingNotes"!}

نحن نعيش في عالم حيث يتعين على مطوري PHP التفاعل مع نظام التشغيل من وقت لآخر نظام ويندوز. WMI ( إدارة ويندوزواجهة، واجهة إدارة ويندوز) - أحد الأمثلة على ذلك هو التفاعل مع مايكروسوفت أوفيس.

في هذه المقالة سنلقي نظرة على التكامل البسيط بين Word وPHP: إنشاء المستندات مايكروسوفت ووردبناءً على حقول الإدخال في نموذج HTML مع باستخدام PHP(وامتدادات التشغيل المتداخل الخاصة به).

الخطوات التحضيرية

أولاً، دعونا نتأكد من تكوين بيئة WAMP الأساسية لدينا. نظرًا لأن Interop موجود فقط على نظام التشغيل Windows، فإننا نحتاج إلى نشر خادم Apache وتثبيت PHP عليه آلة ويندوز. بهذه الصفة، أستخدم EasyPHP 14.1، وهو سهل التثبيت والتهيئة للغاية.

الشيء التالي الذي عليك القيام به هو تثبيت Microsoft Office. الإصدار ليس مهما جدا. أنا أستخدم Microsoft Office 2013 Pro، ولكن أي منها نسخة المكتبيجب أن يكون أقدم من عام 2007 على ما يرام.

نحتاج أيضًا إلى التأكد من تثبيت المكتبات لتطوير تطبيق التشغيل المتداخل (PIA، تجميعات التشغيل المتداخل الأساسية، تجميعات التشغيل المتداخل الرئيسية). يمكنك معرفة ذلك عن طريق الفتح مستكشف ويندوز، والانتقال إلى الدليل \assembly ، وهناك يجب أن نرى مجموعة من التجميعات المثبتة:

هنا يمكنك رؤية عنصر Microsoft.Office.Interop.Word (تم وضع خط تحته في لقطة الشاشة). سيكون هذا هو البناء الذي سنستخدمه في العرض التوضيحي الخاص بنا. يرجى الانتباه بشكل خاص إلى حقول "اسم التجميع" و"الإصدار" و"رمز المفتاح العام". سوف نستخدمها قريبًا في برنامج PHP النصي الخاص بنا.

يحتوي هذا الدليل أيضًا على تجميعات أخرى (بما في ذلك عائلة Office بأكملها) متاحة للاستخدام في برامجك (ليس فقط لـ PHP، ولكن أيضًا لـ VB.net وC# وما إلى ذلك).

إذا كانت قائمة التجميعات لا تتضمن حزمة Microsoft.Office.Interop بأكملها، فسنحتاج إما إلى إعادة تثبيت Office عن طريق إضافة PIA، أو تنزيل الحزمة يدويًا من موقع Microsoft وتثبيتها. للمزيد من تعليمات مفصلةالرجوع إلى هذه الصفحة على MSDN.

تعليق: يتوفر توزيع PIA Microsoft Office 2010 فقط للتنزيل والتثبيت. إصدار التجميعات في هذه الحزمة هو 14.0.0، ويتم توفير الإصدار 15 فقط مع Office 2013.

وأخيرًا، تحتاج إلى تمكين ملحق php_com_dotnet.dll في php.ini وإعادة تشغيل الخادم.

الآن يمكنك الانتقال إلى البرمجة.

نموذج HTML

منذ الجزء الرئيسي هذا المثاليقع على جانب الخادم، سنقوم بإنشاء صفحة بسيطة بنموذج سيبدو كما يلي:

لدينا حقل نصي للاسم، ومجموعة من أزرار الاختيار للجنس، وشريط تمرير للعمر، ومنطقة إدخال نص لإدخال الرسالة، بالإضافة إلى زر "إرسال" سيئ السمعة.

احفظ هذا الملف باسم "index.html" في الدليل استضافة افتراضية، بحيث يمكن الوصول إليه على عنوان مثل http://test/test/interop.

جزء الخادم

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

مرئي = صحيح؛ $fn = __DIR__ . "\\template.docx"; $d = $w->Documents->Open($fn); صدى "المستند مفتوح.


"; $flds = $d->Fields; $count = $flds->Count; echo "توجد حقول $count في المستند.
"؛ صدى صوت "
    "; $mapping = setupfields(); foreach ($flds as $index => $f) ( $f->Select(); $key = $mapping[$index]; $value = $inputs[$key]; إذا ($key == "gender") ( if ($value == "m") $value = "السيد."; else $value = "آنسة."; } if($key=="printdate") $value= date ("Y-m-d H:i:s"); $w->Selection->TypeText($value); echo "!}
  • أقوم بتعيين الحقل $index: $key القيمة $value
  • "؛ ) صدى صوت "
"؛ صدى "اكتملت المعالجة!

"; صدى "أنا أكتب، من فضلك انتظر...
"; $d->PrintOut(); Sleep(3); echo "تم!"; $w->Quit(false); $w=null; وظيفة setupfields() ( $mapping = array(); $mapping = "الجنس"; تعيين $ = "الاسم";

بعد أن قمنا بملء المتغير $inputs بالقيم الواردة من النموذج، وقمنا أيضًا بإنشاء عنصر فارغ باستخدام مفتاح printdate (سنناقش سبب قيامنا بذلك لاحقًا)، نصل إلى أربعة أسطر مهمة جدًا:

$assembly = "Microsoft.Office.Interop.Word، الإصدار=15.0.0.0، الثقافة=محايدة، PublicKeyToken=71e9bce111e9429c"; $class = "Microsoft.Office.Interop.Word.ApplicationClass"; $w = new DOTNET($assembly, $class); $w->visible = true;

يتطلب معالج COM في PHP إنشاء مثيل للفئة داخل "التجميع". في حالتنا، نحن نعمل مع كلمة. إذا نظرت إلى لقطة الشاشة الأولى، فيمكنك كتابة توقيع التجميع الكامل لـ Word:

  • "الاسم"، "الإصدار"، "رمز المفتاح العام" - كل هذا مأخوذ من المعلومات التي يمكن عرضها في "c:\Windows\assembly".
  • "الثقافة" دائما محايدة

يُطلق على الفئة التي نريد الرجوع إليها دائمًا اسم "اسم التجميع" + ".ApplicationClass".

من خلال تعيين هذين المعلمتين يمكننا الحصول على كائن للعمل مع Word.

يمكن أن يبقى هذا الكائن في الخلفية، أو يمكننا وضعه في وضع العمل عن طريق ضبط السمة المرئية على true .

الخطوة التالية هي فتح المستند الذي يتطلب المعالجة وكتابة مثيل "المستند" إلى المتغير $d.

لإنشاء محتوى في مستند بناءً على بيانات النموذج، يمكنك اتباع عدة طرق.

أسوأ شيء هو ترميز محتويات المستند بلغة PHP ثم إخراجها إلى مستند Word. أنصح بشدة بعدم القيام بذلك للأسباب التالية:

  1. تفقد المرونة. ستتطلب أي تغييرات في ملف الإخراج إجراء تغييرات على كود PHP.
  2. وهذا يكسر الفصل بين السيطرة والعرض
  3. سيؤدي تطبيق الأنماط على محتوى المستند (المحاذاة والخطوط والأنماط وما إلى ذلك) في البرنامج النصي إلى زيادة عدد أسطر التعليمات البرمجية بشكل كبير. يعد تغيير الأنماط برمجيًا أمرًا مرهقًا للغاية.

هناك خيار آخر يتمثل في استخدام البحث والاستبدال. لدى PHP مرافق مدمجة جيدة لهذا الغرض. يمكننا إنشاء مستند Word نضع فيه تسميات بمحددات خاصة، والتي سيتم استبدالها لاحقًا. على سبيل المثال، يمكننا إنشاء مستند يحتوي على المقتطف التالي:

وبمساعدة PHP يمكننا بسهولة استبداله بمحتويات حقل "الاسم" المستلم من النموذج.

إنه بسيط وينقذنا من كل العواقب غير السارة التي نواجهها في الطريقة الأولى. نحتاج فقط إلى تحديد الفاصل الصحيح، وفي هذه الحالة سينتهي بنا الأمر باستخدام النمط.

أوصي بالطريقة الثالثة، وهي تعتمد على معرفة أعمق ببرنامج Word. سنستخدم الحقول كعناصر نائبة، وباستخدام كود PHP سنقوم مباشرة بتحديث القيم الموجودة في الحقول بالقيم المقابلة.

يتسم هذا الأسلوب بالمرونة والسرعة والتوافق مع أفضل ممارسات Word. يمكن أن يساعدك أيضًا على تجنب البحث عن النص الكامل في المستند، وهو أمر مفيد للأداء. وألاحظ أن هذا الحل له أيضًا عيوب.

لم يدعم Word الفهارس المسماة للحقول منذ البداية. حتى لو قمنا بتحديد أسماء للحقول التي يتم إنشاؤها، فإننا لا نزال بحاجة إلى استخدام المعرفات الرقمية لهذه الحقول. وهذا يفسر أيضًا سبب حاجتنا إلى استخدام وظيفة منفصلة (حقول الإعداد) لمطابقة فهرس الحقل مع اسم الحقل من النموذج.

في هذا الدرس التجريبي سوف نستخدم مستندًا يحتوي على 5 حقول MERGEFIELD. سنضع مستند القالب في نفس المكان الذي يوجد فيه معالج البرنامج النصي الخاص بنا.

يرجى ملاحظة أن حقل تاريخ الطباعة لا يحتوي على حقل مقابل في النموذج. ولهذا السبب أضفنا عنصر تاريخ طباعة فارغًا إلى مصفوفة المدخلات $. بدون ذلك، سيستمر تشغيل البرنامج النصي، لكن PHP ستصدر تحذيرًا بأن فهرس تاريخ الطباعة ليس موجودًا في مصفوفة المدخلات $.

بعد استبدال الحقول بقيم جديدة، سنقوم بطباعة المستند باستخدام

$d->PrintOut();

تأخذ طريقة PrintOut عدة معلمات اختيارية، ونحن نستخدم أبسط شكل منها. سيؤدي هذا إلى طباعة نسخة واحدة من المستند على الطابعة الافتراضية المرفقة بجهاز يعمل بنظام Windows.

يمكنك أيضًا الاتصال بـ PrintPreview لمعاينة المخرجات قبل طباعتها. في بيئة تلقائية بالكامل، سنستخدم بالطبع طريقة الطباعة.

قد تحتاج إلى الانتظار لبعض الوقت قبل إيقاف تشغيل تطبيق Word، لذلك يستغرق الأمر بعض الوقت لوضع مهمة الطباعة في قائمة الانتظار. بدون تأخير (3)، يتم تنفيذ الأسلوب $w->Quit على الفور ولا يتم وضع المهمة في قائمة الانتظار.

أخيرًا، نستدعي $w->Quit(false)‎ ، والذي يغلق تطبيق Word الذي تم استدعاؤه بواسطة البرنامج النصي الخاص بنا. المعلمة الوحيدة التي تم تمريرها إلى الطريقة هي تعليمات لحفظ الملف قبل الخروج. لقد أجرينا تغييرات على المستند، ولكننا لا نريد حفظها لأننا نحتاج إلى قالب نظيف للعمل عليه لاحقًا.

بمجرد الانتهاء من الكود، يمكننا تحميل صفحة النموذج وملء بعض القيم وإرسالها. توضح الصور أدناه مخرجات البرنامج النصي، بالإضافة إلى مستند Word المحدث:

تحسين سرعة المعالجة والمزيد عن PIA

PHP هي لغة مكتوبة بشكل ضعيف. كائن COM من نوع الكائن. أثناء كتابة البرنامج النصي، ليس لدينا أي طريقة للحصول على وصف لكائن ما، سواء كان تطبيق Word أو مستندًا أو حقلاً. لا نعرف ما هي خصائص هذا الكائن، أو ما هي الأساليب التي يدعمها.

سيؤدي هذا إلى إبطاء سرعة التطوير بشكل كبير. لتسريع التطوير، أوصي بكتابة الوظائف أولاً في C#، ثم ترجمة الكود إلى PHP. يمكنني أن أوصي ببيئة تطوير متكاملة مجانية لتطوير C# تسمى "#develop". يمكن ان تجدها. أفضله على Visual Studio لأن #develop أصغر وأبسط وأسرع.

إن ترحيل كود C# إلى PHP ليس مخيفًا كما يبدو. اسمحوا لي أن أعرض لكم سطرين في لغة C#:

Word.Application w=new Word.Application(); w.Visible=true; String path=Application.StartupPath+"\\template.docx"; Word.Document d=w.Documents.Open(path) كـ Word.Document; Word.Fields flds=d.Fields; int len=flds.Count; foreach (Word.Field f in flds) ( f.Select(); int i=f.Index; w.Selection.TypeText("..."); )

ستلاحظ أن كود C# يشبه إلى حد كبير كود PHP الذي عرضته سابقًا. لغة C# هي لغة مكتوبة بقوة، لذا ستلاحظ في هذا المثال أن هناك العديد من عوامل الإرسال وأن المتغيرات تحتاج إلى الكتابة.

من خلال تحديد نوع المتغير، يمكنك الاستمتاع بتعليمات برمجية أكثر وضوحًا وإكمالًا تلقائيًا، وتزيد سرعة التطوير بشكل ملحوظ.

هناك طريقة أخرى لتسريع تطوير PHP وهي استدعاء ماكرو في Word. نقوم بتنفيذ نفس تسلسل الإجراءات، ثم نحفظه كماكرو. الماكرو مكتوب بلغة Visual Basic، والتي من السهل أيضًا ترجمتها إلى PHP.

والأهم من ذلك، أن وثائق Microsoft Office PIA، وخاصة وثائق مساحة الاسم لكل تطبيق من تطبيقات Office، هي المادة المرجعية الأكثر تفصيلاً المتوفرة. التطبيقات الثلاثة الأكثر استخداما هي:

  • إكسل 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(v=office.15).aspx
  • وورد 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word(v=office.15).aspx
  • باور بوينت 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint(v=office.15).aspx

خاتمة

في هذه المقالة، أظهرنا كيفية ملء مستند Word بالبيانات باستخدام مكتبات PHP COM وإمكانيات التشغيل المتداخل لـ Microsoft Office.

يتم استخدام Windows وOffice على نطاق واسع في الحياة اليومية. إن معرفة قوة Office/Window وPHP ستكون مفيدة لكل مطور PHP وWindows.

يفتح ملحق PHP COM الباب لاستخدام هذه المجموعة.

أ، الأسماء الأخيرة في العمود بوالمهن في العمود ج.

2. قم بإنشاء مستند Word (.doc أو .docx)


(أ), (ب)و (ج).

(أ), (ب)و (ج) (أ)- اسم، (ب)- اسم العائلة، (ج)- مهنة.

إعداداتالبرامج.

3. حدد مسارات الملفات والمجلدات


يختار

4. تحديد أوراق وصفوف البيانات المطلوبة


أوراق بيانات ملف Excel

صفوف بيانات ملف Excel أوراق بيانات ملف Excel

1 .

إذا كنت تريد أن تشارك جميع الأوراق و/أو الصفوف في ملف Excel الخاص بك مع البيانات في تكوين المستند، فانقر فوق الزر المقابل الذي يحتوي على النقش الموجود على اليمين أعداد(سوف يتغير نقشه إلى الجميع).

5. قم بتعيين قالب لتسمية ملفات Word الجديدة


قم بتعيين نمط التسمية لملفات Word الجديدة:

قالب أسماء ملفات الكلمات الجديدة- هذا نموذج لأسماء المستندات الجديدة (ملفات الكلمات) التي أنشأها البرنامج. يحتوي نمط الاسم هنا على أسماء أعمدة ملف Excel، محاطًا بأقواس متعرجة: (أ)و (ب). عند إنشاء مستند جديد، سيقوم البرنامج باستبدال كل شيء (أ)و (ب)قيم الخلايا المقابلة من ملف Excel - سيكون هذا هو اسم المستند الجديد (ملف Word).

يمكنك ضبط أحرف الإطارات الخاصة بك على علامة التبويب إعداداتالبرامج.

6. انقر فوق "إنشاء"


انقر فوق الزر يولدوسيظهر التقدم على الشاشة. سيتم إنشاء عدد من المستندات (ملفات Word) تمامًا مثل عدد الأسطر في ملف Excel المتضمن في التكوين.

7. كل شيء


تم إنشاء جميع المستندات (ملفات الكلمات) وهي موجودة في المجلد المحدد في مجلد لحفظ ملفات الوورد الجديدة. الجميع:)

إكسووغ- منشئ التقارير من Excel إلى Word باستخدام قالب

مولد ملفات Word مجاني باستخدام قالب (ملف Word) يعتمد على بيانات ملف Excel

يعمل على أنظمة التشغيل Mac OS وWindows وLinux

يسمح لك بتحديد أسماء ملفات الكلمات الجديدة التي تم إنشاؤها

يسمح لك بتحديد الأوراق والصفوف من البيانات المطلوبة

يسمح لك بتحديد الأحرف المحيطة لأسماء أعمدة Excel

سهل الاستخدام

قم بتخزين بياناتك بتنسيق Excel (.xls و.xlsx) وقم بإنشاء ملفات Word (.doc و.docx) ببضع نقرات :)


كيف تعمل؟

ألق نظرة على ملف Excel الخاص بك


في هذا المثال، يحتوي ملف Excel على معلومات حول العملاء. كل سطر يتوافق مع عميل معين. يتم ترتيب الأسماء في عمود أ، الأسماء الأخيرة في العمود بوالمهن في العمود ج.

اضغط للعرض

إنشاء مستند Word (.doc أو .docx)


اضغط للعرض

قم بإنشاء "قالب" (ملف Word) لإنشاء مستندات جديدة (ملفات Word). هنا يحتوي نص "القالب" على أسماء أعمدة ملف Excel، محاطًا بأقواس متعرجة: (أ), (ب)و (ج).

سيقوم البرنامج بإنشاء مستندات جديدة وفقًا لـ "القالب" ليحل محل الكل (أ), (ب)و (ج)قيم الخلايا المقابلة من ملف Excel: (أ)- اسم، (ب)- اسم العائلة، (ج)- مهنة.

يمكنك أيضًا تعيين أحرف الإطارات الخاصة بك في علامة التبويب إعداداتالبرامج.

حدد مسارات الملفات والمجلدات


حدد مسارات الملفات والمجلدات (الأزرار المسماة يختار). في البرنامج تحدد المسارات التالية:

ملف Excel يحتوي على بيانات (*.xls، *.xlsx)- هذا هو المسار إلى ملف Excel الخاص بك والذي يحتوي على البيانات (معلومات العميل)؛

ملف قالب Word (*.doc، *.docx)- هذا هو المسار إلى "القالب" الخاص بك (ملف الكلمة الذي تم إنشاؤه في الخطوة السابقة)؛

مجلد لحفظ ملفات الوورد الجديدة- هذا هو المسار إلى المجلد الذي سيحفظ فيه البرنامج المستندات الجديدة التي تم إنشاؤها.

اضغط للعرض

تحديد الأوراق والصفوف من البيانات المطلوبة


اضغط للعرض

حدد عدد الأوراق والصفوف في ملف Excel الخاص بك مع البيانات (معلومات العميل) التي تريد إنشاء مستندات لها:

أوراق بيانات ملف Excel- عدد أوراق ملف Excel الخاص بك والتي ستشارك في تكوين مستندات جديدة؛

صفوف بيانات ملف Excel- أرقام الأسطر من الأوراق (الأوراق المحددة في أوراق بيانات ملف Excel) من ملف Excel الخاص بك والذي سيشارك في إنشاء مستندات جديدة. استنادا إلى بيانات كل سطر محدد، سيتم إنشاء مستند منفصل (ملف كلمة).

يبدأ ترقيم الأوراق والأسطر في البرنامج بـ 1 .

نحن جميعًا نتعامل مع النصوص بطريقة أو بأخرى. في بعض الأحيان تكون هناك حاجة لإنشاء كمية كبيرة أو ليست كبيرة جدًا من النص لبعض المهام، على سبيل المثال، للعب بالتنسيق، ولكن لا يوجد نص في متناول اليد، فأنت كسول جدًا بحيث لا يمكنك كتابته بنفسك. ما يجب القيام به؟ الجواب بسيط: استخدم منشئ النص العشوائي المدمج في Word!

في محرر Microsoft Word، يمكنك إنشاء نص بسرعة وسهولة باستخدام أوامر خاصة. سأستخدم Word 2007 كخنزير تجارب، ويجب أن تعمل هذه الأوامر في جميع إصدارات Word. سأخبرك عن ثلاث طرق لإنشاء النص.

الطريقة الأولى: استخدام rand()

تقوم الدالة rand() بإدراج نص عينة مترجم، 3 فقرات في 3 جمل. افتح Word الخاص بك، ثم ضع المؤشر في المكان الذي توشك مجموعة من النص على الظهور فيه، ثم أدخل الأمر:

واضغط على Enter. ستختفي الدالة rand نفسها وستظهر مكانها 3 فقرات نصية:

ولكن هذا ليس كل شيء. إذا كنت بحاجة إلى الكثير من النص، يمكنك استخدام الدالة rand مع وسائط إضافية، مثل هذا:

=راند(س،ص)

أين " س"يعني عدد الفقرات، و" ذ"- عدد الجمل في كل فقرة. على سبيل المثال، =راند (20.5)سيتم إدراج 20 فقرة تحتوي كل منها على خمس عبارات. أ =راند(7)سيتم إدراج 7 فقرات من 3 جمل لكل منهما.

الطريقة الثانية: استخدام لوريم ()

لإدراج لوريم إيبسوم القديم كنموذج، استخدم الدالة lorem(). اكتب الأمر التالي ثم اضغط على Enter:

وحصلنا على هذا النص اللاتيني

تقبل الدالة lorem() أيضًا بسهولة وسائط إضافية، مثل rand()، في شكل عدد الفقرات والجمل. بدون وسيطات، تقوم الدالة بإدراج 3 فقرات بشكل افتراضي مع ثلاث جمل لكل منها.

الطريقة الثالثة: الدالة rand.old()

الاستخدام مشابه للأوامر السابقة:

=rand.old()

واضغط على Enter.

تم ترك الدالة rand.old() للتوافق مع المكتب القديم، حتى عام 2003 ضمنًا. طريقة التطبيق هي نفس الطريقتين السابقتين، فقط النص سيتكون من نفس العبارات "تناول المزيد من هذه اللفائف الفرنسية الناعمة واشرب بعض الشاي". أي شخص عمل أحيانًا مع الخطوط يعرف هذه العبارة.

يمكنك تمرير الوسائط، كما في الطريقتين الأوليين.

هذا كل شيء، لقد تم إنشاء النصوص، والآن يمكنك تناول المزيد من هذه اللفائف الفرنسية الناعمة وشرب الشاي :)

هل تمكنت من لصق النص باستخدام الوظائف المذكورة أعلاه؟