首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 操作 Word 導出時取消繼承的下劃線格式

     編輯:程式設計綜合問答

問題場景

使用 C# 自動化 Word 導出文檔時,對某段文字設置了下劃線,後續所有文字都意外繼承了下劃線,無法單獨控制段落格式。

根本原因

代碼直接對 Application 或 Document 級別的 Range 設置格式,導致全局生效。Word 物件模型中,格式屬於 Paragraph、Range 或 Style,需針對具體區域設置。

解決方案:針對 Paragraph 或 Range 獨立設置

// 正確做法:獲取具體段落或範圍
Word.Paragraph para = doc.Paragraphs.Add();
para.Range.Text = "帶下劃線的標題";
para.Range.Font.Underline = Word.WdUnderline.wdUnderlineSingle;

// 插入普通文字,不帶下劃線
Word.Paragraph para2 = doc.Paragraphs.Add();
para2.Range.Text = "正常內容文字";
para2.Range.Font.Underline = Word.WdUnderline.wdUnderlineNone; // 顯式關閉

關鍵點總結

  • 不要對 doc.Content 或 app.Selection 直接設置字體屬性。
  • 每段內容用獨立 Paragraph 或 Range,單獨設定 Font.Underline。
  • 需取消下劃線時,顯式設為 wdUnderlineNone,而非依賴預設值。

進階技巧:使用樣式

Word.Style styleTitle = doc.Styles.Add("MyTitle", Word.WdStyleType.wdStyleTypeParagraph);
styleTitle.Font.Underline = Word.WdUnderline.wdUnderlineSingle;
styleTitle.Font.Size = 14;

Word.Style styleBody = doc.Styles.Add("MyBody", Word.WdStyleType.wdStyleTypeParagraph);
styleBody.Font.Underline = Word.WdUnderline.wdUnderlineNone;

para.set_Style(styleTitle);
para2.set_Style(styleBody);

採用段落級或樣式級格式控制,即可精準管理 Word 導出文檔的下劃線等屬性,避免格式汙染。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved