甘特圖是與團隊分享專案時程的絕佳方式。許多專案經理或公司使用它們來分享任務、截止日期和相依性,特別是在大型團隊和跨部門協作時。這些圖表可以成為大型公司執行大型專案的核心資源。
製作這些圖表的方法之一是透過 PlantUML。它是一個使用結構化文字的文字型工具。這個語法最初可能看起來令人生畏,但實際上很容易使用。您可以描述甘特圖或圖表,而不需要像在 GUI 工具中那樣拖曳形狀或新增線條或箭頭。
使用 PlantUML 或文字型甘特圖的一個關鍵優勢是版本控制。語法和程式碼存在於原始檔案中。開發人員或團隊成員可以輕鬆追蹤它們。不需要匯出圖片。您只需將圖表直接嵌入到您的 Markdown、wiki 或 Confluence 頁面中即可。
本文內容
如何使用 PlantUML 製作甘特圖
在建立完整的專案時程之前,了解 PlantUML 中甘特圖的基本語法至關重要。與 PlantUML 中的其他圖表類型一樣,甘特圖是使用精確但易於理解的文字建構的。一旦您熟悉了格式,就可以用幾行程式碼建立甘特圖。
開始和結束標籤
每個 PlantUML 甘特圖都必須以「@startgantt」開始並以「@endgantt」結束。這些標籤包含您圖表的內容,並告訴 PlantUML 要呈現什麼類型的圖表。新增「Project Starts YYYY-MM-DD」關鍵字來建立甘特圖的基礎。
@startganttProject Starts 2025-07-01@endgantt
定義任務
現在,是時候將任務新增到您的甘特圖中了,或者說是 startgantt 和 endgantt 標籤之間的「內容」。在這裡,您將學習如何定義任務、指定開始日期和持續時間,以及編輯甘特圖的一般流程。
基本任務定義
任務透過在方括號內寫入其名稱來宣告。因此,最簡單的任務看起來像這樣:
[TaskName]
指定開始日期和持續時間
確定任務名稱後,就該設定其開始日期和持續時間了。
方法 1使用「starts」和「lasts」關鍵字
您將使用「starts at YYYY-MM-DD」和「lasts x days」關鍵字來執行此操作。具有設定持續時間的甘特圖應如下所示:
@startganttProject starts 2025-07-01[Task 1] starts at 2025-07-01 and lasts 5 days[Task 2] starts at 2025-07-06 and lasts 5 days@endgantt

方法 2使用絕對日期
另一種方法是使用絕對日期(「starts」和「ends」),而不是像前面的範例那樣使用設定的持續時間。
@startganttproject starts 2025-07-01[Task 1] starts 2025-07-01 and ends 2025-07-06[Task 2] starts 2025-07-06 and ends 2025-07-11@endgantt

定義里程碑
里程碑是專案中不跨越多天的關鍵點,例如截止日期、決策關卡或產品發布。PlantUML 中沒有直接的里程碑關鍵字,因此您必須創造性地工作。方法如下:
- 對里程碑使用「happens」加上特定日期。
- 將里程碑定義為「[MilestoneName]」
- 新增「lasts x days」使其顯示為里程碑(菱形形狀)
- 您可以新增「is colored in red」或其他顏色以使其突出顯示
@startganttproject starts 2025-07-01[Task 1] starts 2025-07-01 and ends 2025-07-06[Task 2] starts 2025-07-06 and ends 2025-07-11[Project Complete] happens 2025-07-11[Project Complete] is colored in red@endgantt

新增時間軸刻度
如您所見,PlantUML 還會根據條目和持續時間自動調整甘特圖的可見日期範圍。但是,如果您想調整甘特圖中呈現的時間刻度,可以使用以下語法:
- 「printscale daily」顯示每日時間軸刻度
- 「printscale weekly」顯示每週時間軸刻度
- 「printscale monthly」顯示每月時間軸刻度
@startganttproject starts 2025-07-01printscale weekly[Task 1] starts 2025-07-01 and ends 2025-07-06[Task 2] starts 2025-07-06 and ends 2025-07-11[Tasks 3] starts 2025-07-11 and ends 2025-09-25@endgantt

註解和標題
PlantUML 允許您新增標題、說明文字和行內註解,以保持圖表的可讀性和良好的文件記錄。
使用「title」關鍵字在圖表頂部新增標題。如果您想在圖表下方新增註腳或描述性文字,請使用「caption」。對於不會出現在圖表中的開發人員註解,請使用單引號在程式碼中留下註解。以下是這些程式碼的實際應用:
@startgantttitle Project Alphacaption Development timeline - July 2025project starts 2025-07-01' Planning phase[Task 1] starts 2025-07-01 and ends 2025-07-05[Task 2] starts 2025-07-06 and ends 2025-07-10' Milestone[Complete] happens 2025-07-10[Complete] is colored in red@endgantt

如何在 PlantUML 中製作複雜的甘特圖
一旦您掌握了 PlantUML 中甘特圖語法的基礎知識,就可以開始分層使用更強大的功能。這些進階工具可幫助您視覺化相依性、分組任務、突出顯示重要時期,以及使用變數重複使用常用值。
讓我們探索為您的時間軸賦予真正深度的功能。
任務相依性
相依性在任何專案計劃中都是必不可少的。它們告訴您哪些任務必須在其他任務開始之前完成。在 PlantUML 中,您使用「starts after」關鍵字定義此關係。您不必定義實際的開始和結束日期;您可以在任務名稱後新增「lasts x days」關鍵字。然後,按照下面提供的方式使用「starts after」關鍵字:
@startgantt[Task A] lasts 10 days[Task B] lasts 5 days[Task C] lasts 7 days[Task B] starts after [Task A]'s start[Task C] starts after [Task A]'s end@endgantt
分組任務
您可以在程式碼中使用簡單的「—GroupName --」關鍵字將相關任務分組。這非常好用,因為您可以標記與部門或專案階段相關的任務。例如,在下面的範例中,我們新增了一個「Testing Phase」,它將在要呈現的甘特圖中清楚地顯示出來。
@startganttproject starts 2024-01-01[Frontend Development] as [FE] lasts 15 days[Backend Development] as [BE] lasts 20 days[Database Setup] as [DB] lasts 10 days-- Testing Phase --[Unit Testing] lasts 5 days[Integration Testing] lasts 7 days@endgantt

自訂顏色和樣式
您可以為任務新增顏色以提高可見度或表示類別、狀態或團隊。使用方括號和顏色關鍵字,例如「[#colorname]」來新增顏色,就像這樣:
@startgantt-- Frontend Development --[UI Design] lasts 5 days[UI Design] is colored in lightblue[Component Development] lasts 8 days[Component Development] is colored in lightblue-- Backend Development --[API Design] lasts 4 days[API Design] is colored in lightgreen[Database Schema] lasts 6 days[Database Schema] is colored in lightgreen-- Testing Phase --[Unit Tests] lasts 5 days[Unit Tests] is colored in orange[Integration Tests] lasts 7 days[Integration Tests] is colored in orange@endgantt

使用變數
您可以透過使用 !$variable_name = value 語法定義變數來簡化圖表,用於重複的日期或持續時間。這使您的圖表保持 DRY(不要重複自己)並且易於更新。
這有兩個好處:1)您可以新增具有相同持續時間的新任務,或 2)如果您需要增加持續時間,可以在一個地方編輯,而不是手動編輯其他任務。這在複雜或不斷變化的時間軸中特別有用。
@startgantt!$PLANNING_TASK = "Requirements & Analysis"!$DEV_TASK = "Feature Development"!$TEST_TASK = "Quality Assurance"!$SHORT_DURATION = 5!$MEDIUM_DURATION = 12!$LONG_DURATION = 20[$PLANNING_TASK] lasts $SHORT_DURATION days[$DEV_TASK] lasts $LONG_DURATION days[$TEST_TASK] lasts $MEDIUM_DURATION days@endgantt

有了這些進階功能,您的甘特圖將從簡單的時間軸轉變為完全互動式的專業級專案圖表,同時仍保留在文字檔案中。
PlantUML 甘特圖範例
既然您已經看到了核心語法和進階功能,現在將所有內容與實際的甘特圖範例結合起來。這些將有助於鞏固您所學的內容,並為您提供強大的基礎。
第一個範例是一個簡單的專案時間軸。第二個展示了一個更複雜的計劃,包括任務相依性和分組階段,非常適合管理較大工作量的團隊。
簡單專案計劃
此圖表概述了一個基本的三步驟流程:規劃、執行和審查。每個任務都有開始日期和持續時間,使其成為小型專案的絕佳入門範本。此時間軸顯示了網站啟動的關鍵階段,並以里程碑結束。它非常適合個人規劃、學術專案或 MVP 時間軸。
@startgantttitle Website Launch - Basic Plancaption Simplified 3-phase scheduledate 2025-08-01 to 2025-09-15Planning starts 2025-08-01 duration 5Execution starts 2025-08-07 duration 10Review starts 2025-08-18 duration 4Launch Day starts 2025-08-23 milestone@endgantt

具有相依性和分組的完整專案
此範例反映了一個更結構化的專案,包含前端和後端團隊、任務相依性、顏色編碼階段和突出顯示的衝刺期間。在這裡,任務按團隊分組以提高可見度,相依性確保工作流程遵循實際約束,突出顯示的衝刺幫助團隊專注於最關鍵的時段。
這種圖表非常適合衝刺規劃、工程路線圖或任務協調至關重要的敏捷儀式。
@startgantttitle Development Timeline - With Dependenciescaption Frontend and Backend coordination with milestonesProject starts 2025-07-01-- Frontend --[UI Design] starts 2025-07-01 and lasts 5 days and is colored in LightBlue[Component Build] starts 2025-07-07 and lasts 7 days and is colored in Cyan[Component Build] starts after [UI Design]'s end[Frontend Testing] starts 2025-07-16 and lasts 5 days[Frontend Testing] starts after [Component Build]'s end-- Backend --[API Design] starts 2025-07-03 and lasts 4 days and is colored in LightGreen[Implementation] starts 2025-07-08 and lasts 6 days and is colored in Green[Implementation] starts after [API Design]'s end[Backend Testing] starts 2025-07-16 and lasts 5 days[Backend Testing] starts after [Implementation]'s end[Integration] starts 2025-07-22 and lasts 5 days and is colored in Yellow[Integration] starts after [Frontend Testing]'s end[Launch Day] happens 2025-08-01@endgantt

如何在 PlantUML 中分享或匯出甘特圖
使用 PlantUML 建立甘特圖只是故事的一半。真正的價值在於將這些圖表整合到您現有的工作流程中。因為 PlantUML 是為了靈活性而設計的,它自然地適合開發人員和技術團隊已經使用的許多環境。
在 Markdown 文件中嵌入 PlantUML 甘特圖
PlantUML 與多個基於 Markdown 的文件平台整合,儘管支援程度有所不同。GitLab 具有原生 PlantUML 支援,而 MkDocs 與 PlantUML 外掛程式配合良好。Confluence 透過第三方外掛程式支援 PlantUML。GitHub 需要使用外部呈現服務的解決方法,因為它缺乏原生支援。
對於支援的平台,您可以使用圍欄程式碼區塊直接在 Markdown 中嵌入 PlantUML。在標記之間寫入或複製/貼上您的 PlantUML 甘特圖。
```plantuml @startgantt title Sprint Overview Planning starts 2025-07-01 duration 3 Development starts 2025-07-04 duration 10 @endgantt ```
匯出為 PNG、SVG 或其他圖片格式
如果您正在準備投影片或向不使用 Markdown 或 PlantUML 的利益相關者傳送報告,您可以輕鬆地將圖表匯出為圖片格式,例如 PNG or SVG。您可以按編輯器中的 PNG/SVG 按鈕(如下所標記)來下載它們。

PlantUML 替代方案:更多製作甘特圖的方法
雖然 PlantUML 是一個靈活且高效的甘特圖製作工具,但它可能並非適合每個團隊或情境的最佳選擇。了解其限制可以幫助您決定何時應該考慮其他替代方案。
PlantUML 的限制
PlantUML 的一個常見挑戰是其學習曲線,特別是對非開發人員而言。儘管語法相當直觀,但仍需要使用者手動編寫和編輯文字。這對於包含設計師、專案經理或業務利害關係人的團隊來說可能成為障礙。這些使用者通常偏好能夠視覺化進行變更的工具,而不需要理解格式規則或關鍵字。
另一個限制是有時需要手動調整版面配置。雖然 PlantUML 會盡力自動定位任務,但具有多個重疊任務或相依性的複雜時間軸可能需要額外的設定。您可能會發現自己需要指定日期範圍、調整群組或微調醒目提示區域以達到平衡的版面配置。這可能會拖慢速度,特別是在為高曝光度的報告或簡報製作圖表時。
例如,如果您的團隊正在準備一份詳細的專案時間軸以納入客戶提案或投資者報告中,在 PlantUML 中建立和微調視覺版面配置可能會花費比預期更長的時間。視覺優先的工具可以更快速地完成相同任務,特別是當非技術性的回饋意見是審查流程的一部分時。
GUI 工具選項
在這些情況下,圖形化工具可能更合適。對於需要「所見即所得」編輯體驗的團隊,像 EdrawMax 這樣的軟體提供以下功能:
- 內建範本,可快速設定專案
- 直覺的拖放介面
- 視覺化相依性線條和時間軸縮放
- 適合協作的即時編輯功能
- 靈活的匯出選項,如 PDF、圖片或試算表格式
當視覺呈現、易用性或全團隊存取成為優先考量時,這些平台特別有幫助。話雖如此,許多團隊受益於同時使用兩種方法。PlantUML 非常適合技術文件、內部路線圖和自動化工作流程。另一方面,視覺化工具更適合早期階段規劃、協作會議或對外公開的報告。
EdrawMax:概述與主要功能
因此,如果您需要 GUI 工具,請嘗試體驗 Wondershare EdrawMax 的強大功能。雖然它是一個 GUI 工具,但它提供了類似的精確圖表製作體驗,您也可以透過 PlantUML 獲得,只是您不需要記住複雜的語法。您所要做的就是選擇一個範本、編輯它、拖入一些您需要的新元素,然後匯出。
To 讓您的甘特圖工作流程 變得如此簡單,EdrawMax 為您提供以下功能:
- 內建甘特圖模組。您可以使用專為專案排程設計的專用介面生成任務條、相依性和時間軸。
- 從 Excel/CSV 匯入資料。您也可以直接從試算表匯入結構化資料:任務名稱、起始/結束日期、持續時間,EdrawMax 將立即生成對應的甘特圖。
- 自訂任務屬性。您可以定義優先順序、進度百分比、資源名稱或成本等欄位,讓您更能掌控專案追蹤。
- 多頁支援。您可以將大型甘特圖分割成可管理的頁面或子圖,並透過標籤檢視或超連結在它們之間導覽。
- 匯出為 Visio, PDF 或 SVG。您也可以將完成的甘特圖匯出為多種格式,包括與 Visio 相容的檔案以進行團隊協作,或 SVG 以用於高解析度文件。
- AI 工具。借助 AI 工具的幫助,EdrawMax 還能讓您加快工作流程。從頭開始生成圖表、圖片和文字或自訂排程。
