1

提供されたテンプレートに基づいてその場で Word 文書を作成するように依頼されました。私はいくつかの調査を行いましたが、すべてが OpenXML を指しているようです。私はそれを調べましたが、作成されるcsファイルは15,000行を超えており、VS 2010を壊しています(変更を加えるたびに応答しなくなります)。

Open XML に関するこのチュートリアル シリーズを見てきました http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/10/13/getting-started-with-open-xml-development.aspx

過去にテキスト ファイルと正規表現を使って何かをしたことがありますが、Word はすべてを暗号化するため、うまくいきません。テンプレートからWord文書を作成するためのかなり軽量なオプションは他にありますか.

4

2 に答える 2

3

//こんにちは、とても簡単です。

            //First, you should copy your Template file into another location.
            string SourcePath = "C:\\MyTemplate.dotx";
            string DestPath = "C:\\MyDocument.docx";
            System.IO.File.Copy(SourcePath, DestPath);

            //After copying the file, you can open a WordprocessingDocument using your Destination Path.

            WordprocessingDocument Mydoc = WordprocessingDocument.Open(DestPath, true);

            //After openning your document, you can change type of your document after adding additional parts into your document.
            mydoc.ChangeDocumentType(WordprocessingDocumentType.Document);

            //If you wish, you can edit your document 
            AttachedTemplate attachedTemplate1 = new AttachedTemplate() { Id = "MyRelationID" };

            MainDocumentPart mainPart = mydoc.MainDocumentPart;
            MySettingsPart = mainPart.DocumentSettingsPart;

            MySettingsPart.Settings.Append(attachedTemplate1);

            MySettingsPart.AddExternalRelationship("http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate", new Uri(CopyPath, UriKind.Absolute), "MyRelationID");



            //Finally you can save your document.
            mainPart.Document.Save();
于 2013-03-29T14:56:28.323 に答える
2

私は現在、これらの線に沿って何かに取り組んでおり、Open XML SDKOpenXmlPowerToolsを利用しています。実際のテンプレート ファイルを開いて、テンプレート ドキュメント内のさまざまなプレース ホルダーにテキストを配置するというアプローチが取られています。コンテンツ コントロールをプレース マーカーとして使用しています。

ドキュメントを開くための SDK ツールは、ドキュメントを比較して、ドキュメントがどのように構築されているかを確認できるという点で非常に貴重です。ただし、ツールから生成されたコードは大幅にリファクタリングされており、まったく使用されていないセクションが削除されています。

doc ファイルについて話すことはできませんが、docx ファイルは暗号化されておらず、xml ファイルを含む単なる zip ファイルです。

Eric White のブログには、非常に役立つ多数の例とコード サンプルがあります。

于 2012-08-23T21:12:25.483 に答える