-2

以前に作成した Word 2007 リボン セット (8 つのタブ、約 150 個のボタン、10 個のチェックボックス) を VS2005 で作成した VB から VS2010 の C# に変換しようとしています。私が抱えている問題は、マクロが有効になっているテンプレートを使用して、ボタンのコントロールを設定して新しいドキュメントを開くことができないことです。テンプレートごとに確認済みのファイル パスがあり、VB-C# トランスレータを使用しましたが、何らかの理由で正しく動作しません。これまでのところ、テンプレートをロードする方法として私が持っているものは次のとおりです。

   private void _LoadTemplate(string templateName)
    {
        string templatePath1 = "//Macro - Development";
        string templatePath2 = "//Macro - Development/Templates No Longer Updated";
        if(File.Exists(templatePath1 + templateName))
        {
            Document doc = Application.Documents.Add(Template = templatePath1 + templateName);
        }
        else if (File.Exists(templatePath2 + templateName))
        {
            Document doc = Application.Documents.Add(Template = templatePath2 + templateName);
        }
        else
        {
            MsgBox = "Template does not exist.";
        }
4

1 に答える 1

1

いくつかの主なオプションがあります。

  • Office Automation COM ライブラリを使用する - うまく機能しますが、いくつかの条件があります。
    • コードが実行されているコンピューターの Office (または少なくとも Word) のライセンスを取得する必要があります (Office がまだインストールされていない場合)。
    • サーバー側のデスクトップのない環境 (ASP.NET アプリケーション内など) では使用できません。これはサポートされているシナリオではありません。
  • Aspose などのサードパーティ ライブラリを使用します。
    • 問題は、それが恐ろしく高価なことです。
  • Saaspose などの SaaS サービスを使用する
    • 手頃な価格: 月額 $15 ですが、Aspose のようなローカル ライブラリほど柔軟ではなく、信頼できるインターネット接続が必要です。
  • OOXML ライブラリを直接使用しますが、XML を直接操作したくないとおっしゃいます。

Office 2007 と Office 2010 の Word ドキュメント ファイルは基本的に同一であり、プログラミング モデルと API の違いも同じです。重要な唯一の違いは、Office 2010 の UI が 2007 よりも優れていることだと思います。

于 2013-04-25T23:19:45.920 に答える