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

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 下載全部停留在目前的分頁中,因此機密的時程規劃從不離開裝置。對於本 Gantt Chart Maker 免註冊使用教學 所描述的「免安裝、免帳號」路徑,同樣的三步驟流程依然適用。
實際的好處在於可以快速迭代:貼上清單、產生、檢視長條、修正錯字、重新產生。繪製可見預覽的那段 SVG 字串同時也是驅動下載的內容,因此你儲存的檔案與你審閱過的標記完全一致。如果你的時程某天需要 MS Project 提供的進階功能——任務間的相依性、會跳過週末的工作日曆、用於差異追蹤的基準線——那時候再回頭使用 MS Project 即可。
用瀏覽器三步驟建立圖表
- 輸入選填的標題(最多 100 個 UTF-16 字碼單元),並貼上 2 到 30 列非空白的任務列。每個非空白列必須是「任務,開始,結束」的格式,剛好包含兩個字面逗號,讓每列展開為三個欄位。欄位前後的空白會被自動去除,但不支援引號欄位、跳脫逗號或額外的欄位。
- 使用精確 YYYY-MM-DD 格式的真實 UTC 日期——四位數、一個連字號、兩位月份數字、一個連字號、兩位日期數字。4 月 31 日、非閏年的 2 月 29 日、斜線分隔或缺少補零的格式都會讓整個請求失敗,因此請先修正日期再貼上。每個包含式結束日期都必須等於或晚於其開始日期。
- 產生圖表,逐一確認預覽中的每條長條與刻度,再下載由該預覽字串所建立的獨立 SVG。預與下載內容是完全相同的標記,所以你看見什麼就是儲存什麼。
以本頁的範例來看,假設一個三任務的專案橫跨 2024-01-01 到 2024-01-10,共 10 個包含式天數。每一天的寬度等於繪圖區寬度除以包含式網域的天數,因此 day width = plot_width / 10。從 2024-01-01 到 2024-01-03 的任務佔據三個包含式天數,其長條寬度 = day width × 3,因為它從最早的專案日期開始,所以 x 偏移量為 0。從 2024-01-05 到 2024-01-08 的任務,從最早開始日期算起經過四個完整的 UTC 天後才開始,並橫跨四個包含式天數,因此其 x = day width × 4、寬度 = day width × 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,以及無障礙角色與標籤。較的輸出會在預覽中以捲動方式呈現,而不是把標籤縮到無法閱讀的行動裝置寬度,因此在小螢幕上圖表依然清晰可讀。
MS Project 的完整功能集仍然重要的情境
Gantt Chart Maker 是圖表,不是專案管理系統。它不會解析 Microsoft Project 檔、相依性、里程碑、要徑、假日、工作日曆、進度、負責人、成本、基準線或時區時戳。它也不會判斷重疊的工作是否可行,更不會保證時程符合現實。請將相依性規劃、協作、權限、稽核歷史與營運承諾交給專門的專案管理軟體——MS Project 即是其中之一。
至於其他用途——快速的視覺化、列印出的講義、提案中的靜態時程圖——瀏覽器工具能用不到一分鐘就能打完的清單,產生你在 MS Project 甘特圖檢視中會看到的同一排長條。當時程本身就是產出時,Gantt Chart Maker 是更快速的選擇。