Office Interop を使用して HTML 形式のテキストを Word に追加しようとしています。私のコードは次のようになります。
Clipboard.SetText(notes, TextDataFormat.Html);
pgCriteria.Range.Paste();
しかし、それは Command Failed 例外をスローしています。何か案が?
Office Interop を使用して HTML 形式のテキストを Word に追加しようとしています。私のコードは次のようになります。
Clipboard.SetText(notes, TextDataFormat.Html);
pgCriteria.Range.Paste();
しかし、それは Command Failed 例外をスローしています。何か案が?
数時間を費やした後、解決策はこの優れたクラス http://blogs.msdn.com/jmstall/pages/sample-code-html-clipboard.aspxを使用することです
これは、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); }