🌐Vue 3 表格欄位換行處理:如何保留逗號並換行顯示(含 LCM1 與 MATERIAL1 實作範例)
前言
在企業內部系統或資料分析工具中,我們經常需要在表格中顯示大量文字資料,例如產品編號、客戶資訊、或製造流程代碼。
有時候,資料來源會以
逗號 ( , ) 或
分號 ( ; )
作為分隔符號,但在表格顯示時,如果全部內容擠在同一行,不僅不易閱讀,也容易造成橫向捲動條過長的問題。
今天,我要分享一個 Vue 3 的實作方法,可以讓表格欄位(例如 LCM1 與 MATERIAL1)在遇到逗號或分號時自動換行,並且 保留逗號(方便辨識資料的原本分隔)。
需求說明
假設資料來源是這樣的:
我們希望在表格中顯示成這樣:
規則如下:
-
逗號 ( , ) → 保留逗號後換行。
-
分號 ( ; ) → 直接換行,不保留分號。
-
保留原本的資料順序與內容。
核心解法:toMultiline()
函式
這段程式碼的關鍵點是:
-
split(/([,;])/g)
:利用正則表達式分割字串,並且保留逗號與分號作為獨立項目。 -
reduce()
:用陣列累加的方式,逐步組合出符合規則的新字串。 -
保留逗號再換行:遇到
,
就先加上逗號再加上\n
。 -
分號換行:遇到
;
直接換行,不保留分號。 -
white-space: pre-line;
:透過 CSS 讓\n
在 HTML 表格中正常顯示為換行。
在 Vue 3 中套用
在
fetchPlanData()
將資料轉換時,對 LCM1 與
MATERIAL1 欄位套用
toMultiline()
:
CSS 設定(保證換行生效)
並在
<template>
中針對這兩個欄位加上
material-multiline
類別:
實作效果
原始資料:
表格顯示:
使用者不需要橫向捲動就能清楚閱讀每個項目,尤其在多筆資料對比時可讀性大幅提升。
為什麼這樣做比較好?
-
保留原本資料的分隔符號(例如逗號)有助於對照資料庫或 API 原始資料。
-
視覺分行讓資料更容易對齊與閱讀,減少因為一行過長造成的視覺疲勞。
-
CSS 配合 pre-line 能保持簡潔,不需要額外使用
<br>
標籤。 -
可擴展性高,未來若需要針對其他符號做不同處理,可以直接修改
toMultiline()
。
結論
這個方法雖然簡單,但對於需要處理長字串顯示的前端專案非常實用。
特別是在
Vue 3
這種響應式框架中,只要在資料進入狀態管理前做一次轉換,就能在表格、匯出 Excel
等各種場景中保持一致的換行規則。
如果你也在做內部系統或資料分析平台,不妨試試這種 「保留逗號並換行」 的技巧,能讓使用者體驗大幅提升。
留言
張貼留言