甘特圖是一種水平橫條時間軸,每個任務都會在共享的日期軸上繪製一個帶有標籤的橫條,而 Excel 是人們最常建立甘特圖的地方。標準的 Excel 做法要求你輸入帶有開始日期與持續天數的任務、插入堆疊橫條圖、隱藏開始日期的數列,然後重新調整座標軸順序,讓橫條對齊到日期刻度上。這方法可行,但需要調整圖表格式、輔助欄位與數值格式,一旦日期變動往往就會出錯。如果想要相同的視覺效果卻不想處理繁瑣格式,甘特圖製作工具可以直接在瀏覽器中,把 2 到 30 列簡單的 task,start,end 資料轉成一個可預期的 UTC SVG 時間軸,並讓你取得與預覽完全一致的 SVG 檔案下載。當你的專案只需要一份清楚、可分享的時程,而不是綁定公式參照的活頁簿時,這是更乾淨的選擇。

為什麼 Excel 甘特圖容易變得複雜
Excel 沒有內建的甘特圖類型,所以每個 Excel 甘特圖都是手動建立的堆疊橫條圖,每個任務需要兩個數列。訣竅是先建立一個透明的開始偏移數列,把可見的持續天數橫條向右推,然後把水平軸格式化為從最早開始日期起算的日期軸。當日期軸設定錯誤,橫條就會對到錯誤的日期;當輔助欄位差了一格,每個任務就會跟著位移;當你更改了日期,圖表往往需要手動微調座標軸才能再次看起來正確。結果是一張能用,但只在底層工作表格式嚴謹、且你記得每次建立的格式步驟時才會正確的圖表。
在 Excel 中建立甘特圖:逐步教學
只使用 Excel 內建圖表功能建立基本的甘特圖。本版本不需要任何外掛。
在 A 欄中,每行列出一個任務名稱。在 B 欄中,輸入每個任務的開始日期,使用你的地區設定能識別的真實日期。在 C 欄中,輸入每個任務以天數表示的持續時間。也可選擇在 D 欄以開始日期加上持續天數計算結束日期,這樣後續設定座標軸範圍會更容易。
選取任務名稱與開始、持續天數欄位,然後插入圖表。選擇橫條圖類型,再選擇堆疊橫條子類型,讓每個任務變成水平堆疊的兩個段落,一個不可見、一個可見。
在任一橫條上按右鍵並選擇「格式化數列」。將開始數列設定為「無填色」與「無外框」,讓它消失,只留下每個堆疊右側帶顏色的持續天數段落。
在水平軸上按右鍵並選擇「格式化座標軸」。將最小值設為最早的開始日期,最大值設為最晚的結束日期,主要單位設為一個能讓標籤保持可讀的天數。如果軸顯示的是數字而不是日期,請將座標軸的數值格式切換為日期格式。
在垂直軸上按右鍵,選擇「格式化座標軸」,並勾選「類別軸順序反轉」,讓第一個任務顯示在圖表最上方而非最下方。
最後,如果你想讓每個橫條旁顯示天數,可以為持續天數數列加上資料標籤,再依喜好調整顏色與字型。儲存活頁簿後,只有在底層欄位格式重新正確設定時,圖表才會乾淨地更新。
更快的瀏覽器替代方案
如果上述步驟比你的時程還要沉重,甘特圖製作工具能用更少的按鍵完成相同的視覺效果。你貼上一小段任務文字、點一下,就能在共享的 UTC 時間軸上讀取橫條。圖表完全在本機:不需要格式化工作表、不需要操作圖表精靈、不需要維護輔助欄位。當你需要的是一份用於狀態更新、簡報或印刷講稿的時程快照,而不是隨公式變動的活頁簿時,這是一個很合適的選擇。
如何在瀏覽器中建立你的甘特圖
依照下列步驟,使用甘特圖製作工具產生一份乾淨的 SVG 時間軸。
- 在瀏覽器分頁中開啟甘特圖製作工具。
- 可選擇在表單上方輸入標題。
- 將時程貼到輸入框中。每個任務使用一行不為空的內容,格式為 task,start,end。每行不為空的內容必須恰好包含兩個逗號,形成三個欄位:任務標籤、開始日期、結束日期。請使用 2 到 30 行以產生有效的圖表。
- 每個日期都使用 YYYY-MM-DD 格式,並採用真實的 UTC 曆法日期,確保每個結束日期等於或晚於對應的開始日期。
- 點擊「Generate」(產生)。預覽會在共享的日期軸上為每個任務顯示一個帶標籤的橫條。62 天以內的時程使用日刻度;較長的時程則使用月刻度,讓座標軸保持可讀。
- 對照每個橫條的標籤與刻度進行讀取。由於同一個 SVG 字串同時驅動預覽與下載內容,你看到的與儲存的檔案內容完全一致。
- 點擊「Download」(下載)以儲存獨立的 SVG。檔案內容就是預覽字串本身,因此螢幕上與儲存的文件之間不會重新渲染。
輸入格式與日期規則
由於解析器的設計刻意嚴格,了解表單接受與拒絕的內容會有所幫助。下表彙整了相關規則。
| 項目 | 接受 | 拒絕 |
|---|---|---|
| 日期格式 | YYYY-MM-DD,恰好 10 個字元 | 斜線、缺少前導零、時間文字、時區後綴、MM/DD/YYYY |
| 真實曆法日期 | 從西元 0000 年到 9999 年的普羅雷普提克格里高利曆 UTC 日期 | 4 月 31 日、非閏年的 2 月 29 日、月份 00 或 13 |
| 資料列結構 | 每個任務一行不為空的內容,恰好包含兩個逗號與三個欄位 | 加上引號的欄位、跳脫逗號、多餘欄位、多行儲存格 |
| 結束與開始 | 結束日期等於或晚於開始日期,兩端皆為包含 | 結束日期早於開始日期 |
| 標籤長度 | 每個任務標籤最多 80 個 UTF-16 程式碼單元 | 超過此長度,不會截斷 |
| 標題長度 | 選用標題最多 100 個 UTF-16 程式碼單元 | 超過此長度,不會截斷 |
| 原始輸入預算 | 貼上的時程最多 20,000 個 UTF-16 程式碼單元 | 超過此長度;用空白行填充也無法規避 |
| SVG 輸出預算 | 完整 SVG 最多 100,000 個 UTF-16 程式碼單元 | 超過此長度;不會取樣或截斷尾段 |
| 資料列數 | 2 到 30 列不為空的資料 | 0、1、31 列或更多列 |
只要有一列格式錯誤,整個請求就會被拒絕,因此解析器永遠不會回傳部分圖表。允許重複標籤與重疊的任務,並依照輸入順序保留為個別資料列。
為什麼時間軸保持精確
有幾項設計選擇讓輸出結果可以預期。日期會以真實的 UTC 曆法日進行驗證,而非寬鬆地解析,因此像 2025-02-29 或 2025-13-01 這類語法上的邊界情況會在排版前就失敗。年份使用完整的 UTC 年份 setter 寫入,以避開 JavaScript 對西元 0 到 99 年的特殊處理。每個任務的橫條使用其包含的日數,因此同一天開始與結束的任務仍會佔據軸上的一格日單元。日刻度在 62 天以內是可預期的;超過這個範圍時,月刻度會根據總月數選用固定的月份步進,讓較長的時程仍能取得可讀的標籤,而不會把任務取樣掉。
使用者輸入的字串會透過 XML 實體處理,轉成安全的 SVG 文字,包括 &、角括號、引號與單引號,所有控制字元則會被替換為 U+FFFD。數值屬性僅來自經驗證的有限排版計算,而座標只有在序列化時才會四捨五入到小數點後三位。結果是一張反映你所貼上確切資料的圖表,而不是瀏覽器剛好渲染出來的結果,並且儲存的 SVG 與預覽的標記一致。
由於每個輸入都經過驗證、每個座標都從同一來源序列化,你明天貼上相同的時程,就能取回相同的圖表。整個流程都在你的瀏覽器分頁內完成,因此專案資料不會離開裝置。對於像公式連結的持續天數、工作日曆或即時完成百分比橫條這類 Excel 專屬需求,請繼續使用工作表。若你需要的是一份乾淨、可分享、且與你輸入內容完全一致的時間軸,甘特圖製作工具就是更輕量的路徑。
想進一步了解,請參閱如何在 Google Docs 中製作甘特圖。
想進一步了解,請參閱如何在 Google Sheets 中建立甘特圖。