若要可靠地從 Word 文件中移除空行,請將文字從 Word 複製出來,透過一個啟用「偵測空白字元」選項的純文字空行移除工具進行處理,然後將清理後的文字貼回 Word。這個三步驟的來回流程,能避開許多讀者第一時間會想到、但其實很脆弱的「Find and Replace(尋找與取代)」^p^p 換成 ^p 技巧;因為 Word 把段落視為帶有樣式的物件,而非純粹的單行文字,所以一個視覺上看起來空白的行,實際上可能是帶有額外「段前空間」(space-before)的段落、樣式文字片段中的軟換行(soft line break),或甚至是空白的表格儲存格,而不是真正的段落標記。純文字處理方法的優點在於:你在清理工具中看到的內容,就是最終保留的內容——每一行保留下來的文字都會逐字元(byte-for-byte)原封不動地返回,包括前導縮排、尾端空格、內部間距、字母大小寫,以及 Unicode 字元皆維持不變,唯一消失的,就是那些你真正想刪除的空白列。由於清理步驟是在你的瀏覽器中對原始文字於本機執行,不會上傳任何內容;當 Word 文件內含草稿、客戶筆記,或任何你不想外洩的資料時,這一點至關重要。最終結果會是一份精簡版的文字,可以直接貼回同一份 Word 文件,而不會改變其樣式或版面配置。當手動刪除或反覆執行 Find and Replace 已不再實用時,這就是 Word 中最乾淨的移除空行方式。

為什麼 Word 文件會累積空行
Word 文件很少一開始就是乾淨的,因為 Word 的設計核心是帶樣式的段落,而每一次樣式變更都有可能留下一個看似空白的行。
- 從網頁貼上內容時,每一段 HTML 區塊的結尾常常帶有瀏覽器從未顯示出來的額外段落標記。
- 從另一份 Word 文件或 PDF 貼上時,來源文件的間距會被保留,方法是將每一個視覺上的空隙對應到一個真實的段落。
- 當讀者想將內容往下推,卻不使用段落間距控制項時,反覆按下 Enter 鍵。
- 匯入的 CSV 或表格匯出檔案,被儲存格內的換行字元切開,產生只包含分隔符號或空白字元的列。
- 合併列印(Mail merge)欄位若傳回空值,仍會佔據一個段落並呈現為一個空白行。
在 Word 中,這些空行有時是真實的段落標記,有時是段落樣式內額外的「段前空間」,有時則是位於帶樣式一行上的軟換行(Shift+Enter)。純文字無法分辨「額外的段前空間」與「額外的段落標記」之間的差異,因此視覺上的空隙與文字上的空白列並不一定一致。這就是為什麼即使是一個針對純文字作業的方法,最後在 Word 內進行一次目視檢查仍然是有助益的。
「Find and Replace」^p^p 技巧在哪些地方力有未逮
Word 中教科書式的變通方法是:按下 Ctrl+H,在 Find 欄位中輸入 ^p^p,在 Replace 欄位中輸入 ^p,然後執行 Replace All,直到計數降至零為止。它在簡單的文件上有效,因為兩個連續的段落標記確實看起來像一個空白行。
但在以下三種常見情況下,這個方法會失效:
- 該空行是單一的段落標記,而非兩個。Find and Replace 需要一對重複項才能移除一個,這代表每一次執行後都會留下一個「孤兒」空白行。
- 文件使用的是 Shift+Enter(手動換行,^l)而非 Enter 來產生間距。由 ^l^p 構成的空白行不會被 ^p^p 抓到。
- 該空白行其實是內建在樣式中的段落間距。若 Heading 2 設定了段前空間,那麼每個標題上方就已經看起來像一個空行。此時移除段落標記會改變標題本身,而不是那個空隙。
只要符合上述任何一種情況,更好的清理結果是把文字送進一個純文字空行過濾器,那裡的規則是毫不含糊的:一個完全沒有內容、或僅包含空白字元的列會被移除,其他每一列則原封不動地保留。
「複製文字出來清理」的方法
從 Word 中複製文字、於本機進行清理、再貼回去,是從 Word 移除空行最可預測的方法,且它在每一個現代版本的 Word 上皆可運作,無需巨集(macros)、增益集(add-ins)或 VBA。
- 在 Word 中,選取含有雜散空白的段落。如果空白散布於整份文件,可使用 Ctrl+A 選取全文;或者按住 Ctrl 並逐一點擊需要清理的段落。
- 在選取範圍處於作用中的狀態下,按下 Ctrl+C。不要使用 Ctrl+X;你會希望保留原始段落不變,以便日後能與清理結果進行比對。
- 在新分頁中開啟 Remove Empty Lines 工具,使用 Ctrl+V 將複製的文字貼到輸入框中。
- 若空白來自網頁、PDF,或任何編輯者可能留下不可見縮排的來源,請保持啟用「whitespace-only(僅含空白字元)」選項。只有在處理產生的程式碼或設定檔(其中純粹的縮排行別具意義)時,才將其關閉。
- 點擊 Process(執行處理)。閱讀摘要中顯示的輸入(input)、保留(retained)與移除(removed)列數。如果移除的數量為零,代表你的文件內部的空隙是來自段落間距,而非真實的空段落;這種情況下,Find and Replace 反而可能是更適合的工具。
- 選取輸出框中已清理的文字,使用 Ctrl+C 複製,回到 Word,將游標置於原始段落的開頭。使用 Ctrl+V 貼上,接著在貼上選項的迷你工具列中選擇 Match Destination Formatting(符合目的格式),或按右鍵並選擇 Keep Source Formatting(保留來源格式)——前提是你原先是將文字以純文字形式複製的。
- 目視比對清理後的段落與你的預期是否相符。保留下來的列應該與原始內容完全相同;消失的只有那些空白列。
選擇「Whitespace-Only」或「Strict Empty」模式
清理工具的預設模式幾乎適用於所有的 Word 清理作業,而嚴格(strict)模式則是為數不多的技術性文件所設計的。
此模式僅控制一項決策:一個完全由空格、Tab 或其他 Unicode 空白字元構成的列,是否視為空行。它並不會改變保留多少文字、行的順序,或是保留列的修剪方式。
| 設定 | 移除的行 | 保留的行 | 適用情境 |
|---|---|---|---|
| Whitespace-only(僅含空白字元,預設) | 空行,以及那些經 Unicode 感知修剪後為空的行;因此空格、Tab、不中斷空格及其他可辨識的空白皆視為空白 | 至少包含一個非空白字元程式碼單元(code unit)的行 | 從網頁、PDF、郵件用戶端貼到 Word 的文字,或混合來源的草稿 |
| Strict empty-only(僅限嚴格空行) | 僅移除零個程式碼單元的行 | 包含一個或多個字元的行,即使是單一個空格、Tab 或不中斷空格也算在內 | 設定檔片段或程式碼,其中純粹的縮排行具有意義 |
如果不確定,請先用 whitespace-only 模式執行一次清理。如果結果被過度刪減了,再切換到 strict 模式重新處理。每次執行都會取代前一次的結果,且計數會立即重置。
實際範例:9 行輸入,4 行輸出
以下是一個單一的 Word 貼上範例,用以展示清理工具的主要行為,如此一來,兩種模式之間的關聯性就能在真實的數字上輕易看出來。
輸入是從 Word 複製過來的九行:
- Quarterly summary
- (空行)
- Revenue rose 12%.
- (空行)
- (一個包含四個普通空格的列)
- Costs fell 4%.
- (空行)
- Forecast revised.
- (最末尾的一個空行,因為 Word 的剪貼簿會包含一個結尾的段落標記)
啟用 whitespace-only 模式時,清理工具會移除第 2、4、5、7、9 行,因為第 5 行僅包含空格,而瀏覽器在 Unicode 感知下的修剪結果會將其視為空行。也就是移除 5 行,9 − 5 = 4 行被保留。輸出剛好是四行:Quarterly summary、Revenue rose 12%.、Costs fell 4%.、Forecast revised.,並以單一 LF 換行字元連接。
在 strict empty-only 模式下,第 2、4、7、9 行具有零個程式碼單元,因此移除 4 行,9 − 4 = 5 行被保留。第 5 行會保留為四個空格,第 6 行和第 8 行維持不變,而使用者預期會消失的那個視覺空隙仍然存在。
這些數字證實了這條規則,且並未進行減法以外的算術運算;其結果是讀者可以將其複製回 Word,並與原始內容進行比對。
清理後文字中「完全保持不變」的內容
清理工具只有一項工作,且它不會侵入文字的其他部分。了解哪些部分會保持原樣,正是讓這個來回流程能安全貼回 Word 的關鍵。
保留下來的列會逐字元保留以下內容:
- 前導縮排,包括 Tab、一般空格,以及不中斷空格。
- 每一行尾端的空格。
- 內部重複的空格,包括句子後的雙空格。
- 標點符號、字母大小寫、數字,以及 Unicode 字元。
- 每一個保留行的原始順序。
清理工具不會觸碰以下內容,即使「動手腳」看起來很誘人:
- 一行內部的空白永遠不會被合併或重新排列(reflow)。
- 字母大小寫、標點符號及重複內容皆不會被更改;該工具不會排序、去重或標準化(normalise)Unicode。
- 保留行內部的換行不會被合併或拆分。每一行僅有的決策就是它是否符合「空白行」的判定條件。
這種分離也是為什麼清理工具不會去解析 Word 文件、RTF 格式、含有內嵌換行的 CSV,或帶引號的 JSON 字串:它只看瀏覽器字串與已記錄的行邊界。位元組的保留性,僅在輸入為純文字時才受到保證。
邊緣情況:末尾空白、混合換行與大小上限
在將清理後的文字貼回 Word 之前,有三種情況值得先行檢查,因為它們是最常讓讀者感到意外的狀況。
末尾的空行。如果你的 Word 選取範圍以段落標記作結,剪貼簿通常會包含一個最末端的換行字元。清理工具會將其視為多出的一個空行,並在任一模式下將其移除。因此輸出內容不會帶有結尾換行字元;這在 Word 中通常是無妨的,因為 Word 在存檔時總是會自動補上一個。
混合的換行符號。儲存為 .docx 的 Word 文件內部通常使用 CRLF,但從剪貼簿複製出來的文字可能是 CRLF、LF,甚至在來源曾於不同平台編輯時出現混合的情況。清理工具遵循標準的 String.split 慣例,將這三種視為單一的行邊界,並以 LF 連接保留的行。在 Word 中的視覺結果完全一致,你不會看到多餘的歸位字元(carriage returns)。
大小上限。清理工具最多接受 1,000,000 個 UTF-16 程式碼單元,超過的話會在處理前以可見的錯誤訊息拒絕,且不會輸出部分結果。剛好達到上限的 Word 文件會被接受,只要再增加一個字元,輸入就會被拒絕。如果你的文件更大,請分批貼上,逐段清理,然後在 Word 中將它們拼接回去。
如果你想在貼上之前確認輸入大小,使用瀏覽器內建的快速行數與字元計數,就能得到一個可與上限進行比對的數字。Line Counter 能在不上傳文字的情況下,回報總行數、非空行數與空行數。
移除空白行之後的相關工作
移除空白行很少會是最後一步。有幾項鄰近的工作採用相同的純文字做法,並能自然地銜接到回到 Word 的循環流程。
如果清理後的文字仍有重複的行,請將其送入 移除重複行 工具,它會保留每一行的第一次出現,並完整保留所有被保留的字元。
如果結果需要合併成一個段落,而非每行一個項目,請將其送入 移除換行符,以選擇的分隔符來連接各行。該工具絕不會修剪被保留的文字,也絕不會折疊內部空白,因此文件的其他部分都能完整保留。
若想在貼回 Word 之前知道移除了多少行,可將輸入與輸出貼到行數計算器中。總行數、非空白行數與空白行數會給出一個數字,與清理工具本身的報告相符,讓您能確認沒有其他變動。
如需更深入的瞭解,請參閱 如何使用行差異比對閱讀困難文本。
如需更深入的瞭解,請參閱 如何依照行數將文字檔分割成多個檔案。