سؤال

لدي قالب بتنسيق word (.docx) وأريد استبدال بعض العناصر النائبة في هذا القالب ببياناتي الخاصة، هل تعرف أين يمكنني العثور على الفئات المناسبة لهذا المشروع؟سيكون من الجميل بالنسبة لي أن أعرف مساحة الاسم.هل هناك أي فئات أحدث للتعامل مع مستندات Word بتنسيق docx (xml) من فئات com؟شكرًا لك على جميع إجاباتك، وآمل أن يساعدني أحد في مشكلتي.

تحية

سيباستيان

هل كانت مفيدة؟

المحلول

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

  1. يمكنك استخدام Open XML SDK الموجود في http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en

  2. يمكنك فك ضغط ملف docx، وإجراء بحث واستبدال الرموز المميزة الخاصة بك، ثم ضغطه احتياطيًا.

هناك موقع على الانترنت في openxmldeveloper.org هذا فقط لهذا النوع من الأشياء.ضع في اعتبارك أيضًا أنهم يقومون بالفعل بشحن الإصدار التجريبي 2 من SDK.

نصائح أخرى

وقد تطرق

واريك الابيض يوم بالضبط هذا الموضوع في <لأ href = "http://blogs.msdn.com/ericwhite/archive/2008/09/08/openxmlcodetester-validating-code-in-open-xml- documents.aspx "يختلط =" نوفولو noreferrer "> المادة بلوق تفاصيل برنامج يهدف إلى التحقق من صحة قصاصات مصدر المضمنة في ملفات دوكإكس . أبعد من مجرد أن المادة أنا أوصي بقراءة سلسلة أعماله على <لأ href = "http://blogs.msdn.com/ericwhite/archive/2008/09/29/the-flat-opc-format.aspx" يختلط = "نوفولو noreferrer "> فتح مكتب XML و C # .

لقد استخدمت هذا واحد:

iEnumerable Test2 = من العنصر في body.elements () حيث element.innertext.contains ("SDT") حدد العنصر ؛

وبالمناسبة باستخدام أكس لقد وجدت هذا الحل الذي يجد ALL-المعاملة الخاصة والتفضيلية العقد

 NameTable nt = new NameTable();
        XmlNamespaceManager nsManager = new XmlNamespaceManager(nt);
        nsManager.AddNamespace("w", wordmlNamespace);

        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(doc.MainDocumentPart.GetStream());

        XmlNodeList nodeList = xDoc.SelectNodes(@"./w:document/w:body//w:sdt", nsManager);

وكان يعمل ولكن لم توسيع XML تنسيق SDK 2.0 تعطيني أي فرصة لذلك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top