MS Project 中的甘特圖是一種每列一個任務的水平長條圖,將每個任務對應到共享的行事曆時間軸上,而同樣的圖表也可以在瀏器分頁中透過 Gantt Chart Maker 從一份簡潔的「任務,開始,結束」清單建立。MS Project 是處理相依性規劃、基準、行事曆與資源追蹤的重型解決方案,但大多數簡單的時程表其實只需要那些長條本身。如果你的目標只是傳達一份日期與期間的清單,你可以跳過安裝程序,輸入 2 到 30 列,然後下載一份與預覽完全一致的獨立 SVG 檔案。瀏器的這條路徑把 MS Project 當作同一視覺效果的靈感來源:同樣的列、同樣的行事曆、同樣的水平長條,沒有授權問題,也不用轉換檔案格式。本指南將清楚說明 Gantt Chart Maker 如何接受嚴格的 YYYY-MM-DD 日期、含括結束日期如何決定長條長度,以及何時會切換到日刻度或月刻度的邏輯。

how to make gantt chart in ms project
在 MS Project(或瀏覽器分頁)中製作甘特圖

MS Project 中的甘特圖真正顯示的是什麼

MS Project 中的甘特圖,最單純來說,就是一排水平長條,每條長條的左邊對齊任務的開始日期,右邊對齊任務的結束日期,整齊堆疊在同一條共享的行事曆軸上。垂直軸列出任務標籤,水平軸承載日期,長條長度代表期間。這些長條並不代表工作量、完成百分比或資源配置,而是日曆上的佔用情形。MS Project 在其上疊加了相依性、基準、完成百分比、工作行事曆與資源欄位,但核心的時間軸幾何結構,與 Gantt Chart Maker 在瀏覽器分頁中製的完全相同。

有兩個語意最為關鍵。第一,日期就是日曆日期,而非工作天:除非透過工作行事曆加以扣除,否則週末是被包含在內的;Gantt Chart Maker 在沒有套用任何行事曆時,繪製方式與 MS Project 完全一致。第二,結束日期是含括的,因此從 2024-01-01 到 2024-01-03 的任務會佔據三個日格,而非兩個。這條單一規則會改變長條的視覺長度,一旦弄錯,後續每一條長條都會跟著偏移。

對 MS Project 的使用者來說,重點在於:Gantt Chart Maker 的圖表之所以看起來像 MS Project 的甘特圖檢視,是因為兩者採用相同的「列與長條」幾何結構。它並不會複製底層的專案管理機制,下一節會把這個界線講清楚。

為什麼瀏覽器版的甘特圖工具勝過啟動 MS Project

Gantt Chart Maker 的存在,是為了處理甘特圖工作流程中「只有日期與長條」的那一塊。MS Project 則是為更廣泛的工作而打造:相依性、里程碑、要徑、資源平衡、基準、工時表與稽核歷史。如果你的交付物只是一張要放進投影片、文件或電子郵件的圖片,這些機制完全不會影響你真正需要繪製的圖。

瀏覽器的路徑用限制取代了這些機制。它只接受甘特圖真正需要的輸入格式——任務、開始日期、結束日期——其餘一概拒絕。這裡沒有從 MS Project 匯出的檔案格式、沒有匯入步驟,也不會有 Project Standard 與 Project Online 之間的版本落差。解析、UTC 日期運算、SVG 建構、預覽轉譯與 Blob 下載全部都在當前分頁內完成,因此機密的 roadmap 永遠不會離開裝置。在這篇 Gantt Chart Maker 免註冊逐步教學 中所介紹的「免安裝、免帳號」路徑,同樣適用這個三步驟流程。

實際的好處在於迭代速度極快。貼上清單、產生、檢視長條、修正錯字、重新產生。負責繪製可見預覽的 SVG 字串同時也驅動下載動作,因此你儲存的檔案與你檢視過的標記完全一致。如果你的時程表日後需要 MS Project 才能提供的進階功能——任務間的相依性、會略過週末的工作行事曆、可用來追蹤變異的鎖定基準排程——那就是該拿出 MS Project 的時機。

用瀏覽器三步驟建立圖表

  1. 輸入一個選填的標題(最多 100 個 UTF-16 程式碼單位),並貼上 2 到 30 列非空白的任務列。每個非空白的列必須是「任務,開始,結束」格式,且恰好包含兩個半形逗號,因此每列會展開為三個欄位。欄位前後的空白會被自動去除,但不支援引號欄位、跳脫逗號或其他額外欄位。
  2. 使用精確的 YYYY-MM-DD 格式的 UTC 日期——四位數、一個連字號、兩位月份數字、一個連字號、兩位日期數字。4 月 31 日、非閏年的 2 月 29 日、使用斜線分隔,以及缺少補零的格式,都會讓整個請求失敗,因此請在貼上前修正日期。每個含括結束日期必須等於或晚於其開始日期。
  3. 產生圖表、仔細確認預覽中的每一條長條與刻度,然後下載由完全相同的預覽字串所產生的獨立 SVG。預覽與下載內容是同一份標記,因此所見即所存。

在本頁的示範範例中,假設是一個涵蓋 2024-01-01 到 2024-01-10、共 10 個含括日的三任務專案。每一天的寬度等於繪圖區寬度除以含括區間天數,因此日寬 = 繪圖區寬度 / 10。從 2024-01-01 到 2024-01-03 的任務佔據三個含括日,因此其長條度 = 日寬 × 3,且因為它從專案最早一天開始,x 偏移為 0。從 2024-01-05 到 2024-01-08 的任務從第 4 天偏移處開始(比最早開始日多出四個完整的 UTC 天),並橫跨四個含括日,因此其 x = 日寬 × 4,寬度 = 日寬 × 4。座標僅在序列化時取至小數三位,因此執行階段使用的數值是精確的,並非顯示用的四捨五入值。

決定圖表能否產生的 CSV-Lite 規則

Gantt Chart Maker 刻意採取嚴格規則,因為每一條放寬的規則,都是一個潛在的視覺臭蟲。下表摘要說明決定能否成功產生的輸入規範。

規則值重要性
非空白列數2 到 30少於 2 列沒有時間軸可言;多於 30 列則會觸及原始輸入預算上限。
每列逗號數恰好 2 個三個欄位:任務、開始、結束。
日期格式YYYY-MM-DD,共 10 字元詞彙式驗證與日曆驗證皆會通過。
標籤長度最多 80 個 UTF-16 程式碼單位超過一個單位即失敗,不會自動截斷。
標題長度最多 100 個 UTF-16 程式碼單位超過一個單位即失敗,不會自動截斷。
原始排程輸入最多 20,000 個 UTF-16 程式碼單位空白行僅在預算檢查通過後才會被忽略。
SVG 輸出最多 100,000 個 UTF-16 程式碼單位超過一個單位即失敗,不會省略任何後綴。

不支援引號欄位、引號逗號、額外欄位、跳脫分隔符與多行欄位。需要使用逗號的標籤必須在輸入前改寫成不含逗號的形式;而任何一個格式錯誤的列都會讓整個請求失敗——解析器絕不會略過錯誤的列,也不會回傳部分圖表。

含括日期與 UTC 日曆運算如何決定長條形狀

日期會以實際的預推格里高利 UTC 日曆日期進行驗證,而非透過寬鬆的字串解析來處理。必須是四位數、一個連字號、兩位月份數字、再一個連字號、最後兩位日期數字。月份為 0 或 13、4 月 31 日、非閏年的 2 月 29 日、斜線分隔、缺少補零、時間文字與時區後綴,全部都會驗證失敗。使用完整的 UTC 年份 setter 可避免 JavaScript 對 0 到 99 年所套用的特殊數值 Date.UTC 處理,因此從 0000 到 9999 的詞彙式年份範圍皆能完整支援。

圖表描述的是日曆佔用情形,而非工時、工作天、工作量、完成百分比或資源容量。水平區間從最早的任務開始日期起算,並延伸到最晚的含括任務日之後。每一天的寬度是繪圖區寬度除以含括區間天數。長條的 x 位置使用完整的 UTC 日偏移,寬度則使用每個任務的含括天數。結束日期是含括的,因此從 1 月 1 日到 1 月 3 日的任務會佔據三個日曆日格。開始與結束日期相同的任務會佔據一個可見的日格。

如果所有任務都在同一天,共享區間就只有一天,且因為計算永遠不會除以零個經過的天數,每一條長條仍然可見。允許任務重疊與標籤重複,並會依照輸入順序保留為不同列,因此兩個同名任務仍會繪製成兩條長條,分別堆疊在原本的位置。無論瀏覽器的地區設定、當前日期、夏令時規則或本地時區為何,版面配置都不會改變——長條會落在 UTC 日曆所指派的位置。

解讀輸出:日刻度、月刻度與 SVG

62 天以內的區間會使用決定性的日刻度。刻度間隔會擴張,以維持大約九個標籤,並同時永遠包含第一個日期與最後一個日期。更長的排程會切換為月刻度,而極長的區間則會依據總月數計算一個固定的月份步階,而非產生數千個標籤。這是刻意的座標軸抽樣,並非任務截斷:每個被接受的任務及其完整的日期寬度都會保留在圖表中。

排程長度刻度模式標籤格式概略標籤數
62 天或更短日刻度YYYY-MM-DD大約 9 個(首尾必定顯示)
超過 62 天月刻度YYYY-MM依據總月數計算的固定步階

刻度標籤、任務標籤、選填的標題,以及無障礙的 aria-label 全部使用相同的跳脫規則。& 符號、角引號、引號與撇號都會被轉換為 XML 實體,因此像 R&D <phase 1> 這樣的任務標會以可見文字呈現,而不會變成格式錯誤的元素。看起來像程式碼的文字會保留為可見字元,而不會被當成 SVG 元素,這讓輸出可以安全地放進投影片組或 CMS。SVG 使用 W3C SVG 2 命名空間,具備固定的 1,100 像素邏輯度、依列數而定的可變高度、白色背景、格線、標籤、矩形長條、標題工具提示、viewBox,以及無障的 role 與 label。較寬的輸出會在預覽中以捲動方式呈現,而不是把標籤壓縮成在手機上難以閱讀的度,因此在小螢幕上圖表依然清晰可讀。

當 MS Project 的完整功能集仍然重要時

甘特圖製作工具是一張圖表,而不是專案管理系統。它無法解析 Microsoft Project 檔案、相依性、里程碑、要徑、假日、工作行事曆、進度、指派人、成本、基準或時區時間戳記。它無法推斷重疊的工作是否可行,也無法保證排程是否實際可行。對於相依性規劃、協作、權限、稽核記錄和營運承諾,請使用專門的專案管理軟體——其中也包括 MS Project。

至於其他用途——快速的視覺化、列印的講義、提案中使用的靜態時間軸影像——這個瀏覽器工具能從一份不到一分鐘就能打出的清單中,產生您在 MS Project 甘特圖檢視中會看到的同一排長條。當時間軸本身就是最終成果時,甘特圖製作工具是更快速的選擇。

如果您正在權衡各種選項,如何從 SVG 在 PowerPoint 中製作甘特圖對此有詳細介紹。