4

Office Interop を使用して HTML 形式のテキストを Word に追加しようとしています。私のコードは次のようになります。

Clipboard.SetText(notes, TextDataFormat.Html);
pgCriteria.Range.Paste();

しかし、それは Command Failed 例外をスローしています。何か案が?

4

4 に答える 4

3

数時間を費やした後、解決策はこの優れたクラス http://blogs.msdn.com/jmstall/pages/sample-code-html-clipboard.aspxを使用することです

于 2010-03-02T16:52:24.357 に答える
3

これは、Windows 7 と Word 2007 でうまくいきました。

public static void pasteHTML(this Range range, string html)
{
    Clipboard.SetData(
      "HTML Format",
      string.Format("Version:0.9\nStartHTML:80\nEndHTML:{0,8}\nStart" + "Fragment:80\nEndFragment:{0,8}\n", 80 + html.Length) + html + "<");
      range.Paste();
}

サンプル使用:range.pasteHTML("a<b>b</b>c");

おそらく、クリップボードを使用せずにもう少し信頼できる方法は、HTML フラグメントをファイルに保存して使用することInsertFileです。何かのようなもの:

public static void insertHTML(this Range range, string html) {
    string path = System.IO.Path.GetTempFileName();
    System.IO.File.WriteAllText(path, "<html>" + html); // must start with certain tag to be detected as html: <html> or <body> or <table> ...
    range.InsertFile(path, ConfirmConversions: false);
    System.IO.File.Delete(path); }
于 2016-01-15T15:45:48.810 に答える