2
我已經開始學習C#,主要是爲了MS Word自動化的目的。使用Interop.Word,我怎樣才能添加一個單詞「一二三」與兩個斜體?我能得到的最接近的是這樣的:Interop.Word斜體內聯字
//text with some italic words.
para.Range.Text = "one ";
Console.WriteLine(para.Range.Start);
Console.WriteLine(para.Range.End);
// <some magic methods that end the last range and start a new one in place>
para.Range.Text = "two";
para.Range.Font.Italic = 1;
Console.WriteLine(para.Range.Start);
Console.WriteLine(para.Range.End);
// <some magic methods that end the last range and start a new one in place>
para.Range.Text = " three";
Console.WriteLine(para.Range.Start);
Console.WriteLine(para.Range.End);
para.Range.InsertParagraphAfter();
至於我需要的方法,我嘗試了很多東西,但都沒有工作。 MSDN文檔很難閱讀並省略許多重要細節。
編輯:我終於使它的工作,通過爲每個單詞創建一個新的範圍對象。這是關於醜如我能想象,但因爲至少它的工作原理:
Word.Range rng = word_doc.Range(para.Range.End - 1, para.Range.End);
rng.Text = "one ";
Console.WriteLine(rng.Start);
Console.WriteLine(rng.End);
rng = word_doc.Range(rng.End - 1, rng.End);
rng.Text = "two";
rng.Font.Italic = 1;
Console.WriteLine(rng.Start);
Console.WriteLine(rng.End);
rng = word_doc.Range(rng.End - 1, rng.End);
rng.Text = " three";
rng.Font.Italic = 0;
Console.WriteLine(rng.Start);
Console.WriteLine(rng.End);
para.Range.InsertParagraphAfter();
那麼,'para.Range.Font.Italic = 1;'應該這樣做,但你怎麼能說它工作?使用Console.WriteLine不會顯示文本爲斜體...您知道嗎? –
目前尚不清楚問題所在。你的代碼看起來很好,除了與'Word'無關的'Console.WriteLine'部分。 –
Console.WriteLine用於簡單的日誌記錄;而上面的代碼不能按預期工作,只有「三」是輸出。 「一」和「二」被覆蓋。 – user2341726