2011-01-14 7 views
2

Visual Studio 2005で.NET 2.0のC#で書かれたコードを継承しました。バックエンドデータベースはMS SQLサーバー2000です。コードを移行しましたVisual Studio 2010で.NET 4.0のC#に変換し、コンパイルしてビルドすることができます。問題は、古いコードがMicrosoft.Interop.Office.Wordライブラリを使用して、差し込みとマクロが埋め込まれたテンプレートを使用してサーバー側のレポートを生成できることです。 Visual Studio 2010は、サーバー側のVBAまたはC#MS Wordのアプリケーション作業をサポートしていないことを理解しました。そこでOpen XML 2.0をダウンロードしました。ドキュメンテーションはイライラしません。また、Web上で見つけた無数の記事は、ドキュメントを最初から作成したり、メールのマージや.dotmファイル内の有効なマクロの実行についてはほとんど言及しておらず、そのほとんどはOpen XML 1.0を扱っています。Open XML 2.0でmicrosoft .xmlファイルを開き、変数データを追加

MS Wordで.dotxファイルを.xmlファイルに変換してから、C#とOpen XML APIを使用して.xmlファイルをロードし、データベースから取得した変数データを埋め込むことはできますか?レポートが実行されるたびに、既存の.xmlファイル(30ページのレポート)をコード内に動的に構築することは絶対に夢中に思えます。何か不足していますか?

誰かがこれをうまくやったなら、C#コードの例が本当に役に立ちます。 ありがとう、 Emily

+0

あなたはMSワードアプリケーションの仕事をサポートしていないと思いますか? –

+0

不足:Visual Basic 2005の.NET 2.0でC#で書かれたコードのトン数 –

+0

SQL 2008 R2で.NET 4.0を使用してVS2010に移行したいという問題があります。マイクロソフトでは、もはやVBAやC#によるサーバー側のWordの管理をサポートしていないと言います。 BangaloreはJavascriptですべてを書き直すか、openXLMを使うように言った。 openXMLのドキュメントはぞっとしています。 –

答えて

2

本当に簡単な検索/置換方法を試すことができます。

  1. 変更に
  2. 彼は正常に文書化しませんint型出現するつもりはありません検索と解析が容易なプレースホルダを持つすべての差し込み印刷フィールドを.docxのファイルとしてテンプレートを作成し、サーバーに保存しますXMLエンコーディングが必要です。例:{{FirstName}}
  3. は、新しい空白の.docx(ジッパー)あなたは
  4. は、ソースファイルを読み込むと
  5. ファイル.docxのテンプレートの中から、各ファイルを読むために検索して、あなたのトークンを置き換える生成する文書ごとにファイルを作成します。私は、Open XMLおよび使用の私の理解に取り組んでから、上記妨げる落とし穴があるかどうかを自分自身がそう私にはわからないのWordMLで働いたが、ベースとしていない

クライアントに適切な

  • 送信ファイルSpreadsheetMLの、それは動作するはずです。

    OpenXMLを使用する作業は、Office Interopより複雑です。 Office Interop APIは、Office UIに非常に近く、使い慣れた使いやすいものでした。 Open XML APIは、コアXML上の非常に軽いラッパーであり、XMLを直接扱うのとほぼ同じです。それはまったく同じような自動親密度なしではより複雑です。

    ただし、OpenXMLはです。オフィスの相互運用性よりもはるかに高いです。オフィスの相互運用性はで、決してはサーバーの使用に安全です。これをあなたの古い時速爆弾を取り除く良い機会と考えてください。

  • 関連する問題