從 PDF / 文件整理到可自動化資料表
本單元會帶你把工作文件整理成表格,建立 Google Sheet 資料中心,並設計後續可以自動產表、通知與寄信的資料基礎。
一、本單元你會完成什麼?
本單元結束前,你要完成一份可以作為自動化基礎的 Google Sheet 資料表。
你會將 PDF、文件、會議紀錄或工作資料,整理成欄位清楚、可貼入 Google Sheet 的表格。
你會建立一份包含原始資料欄位與自動化控制欄位的 Google Sheet。
你會加入產表狀態、通知狀態或處理狀態,用來避免重複執行與重複通知。
你會設計一個未來可以用 Apps Script 自動寄信的條件、對象與信件內容。
二、這一段工作流在整堂課的位置
M3-M4 是整條個人 AI 工作流的資料基礎:AI 先把資料整理乾淨,Google Sheet 再把資料變成可管理、可查詢、可自動化的格式。
文件來源
PDF、Excel、Email、SFT 途程單、會議紀錄。
AI 萃取
用 GPTs / Gemini 抓出欄位、摘要與表格。
Sheet 整理
建立資料表、狀態、負責人與信箱欄位。
GAS 讀取
Apps Script 逐列讀資料並判斷條件。
自動輸出
產生檢查表、工作表、通知信。
回寫狀態
更新已產生、已通知、錯誤或待確認。
三、操作總流程:請照這個順序完成
| 步驟 | 你要做的事 | 使用工具 | 完成標準 |
|---|---|---|---|
| Step 1 | 選擇一份要整理的文件 | PDF / Excel / Word / Email | 已確定本次要處理的資料來源。 |
| Step 2 | 用 AI 整理成表格 | GPTs / Gemini | AI 已輸出欄位清楚的表格。 |
| Step 3 | 檢查 AI 產出的資料 | 人工檢查 | 單號、日期、數量、狀態沒有明顯錯誤。 |
| Step 4 | 貼到 Google Sheet | Google Sheet | 第 1 列是欄位名稱,第 2 列開始是資料。 |
| Step 5 | 新增自動化欄位 | Google Sheet | 已加入負責人、通知信箱、處理狀態、通知狀態。 |
| Step 6 | 設定狀態選項 | Google Sheet 資料驗證 | 狀態欄位使用固定選項,不自由輸入。 |
| Step 7 | 設計寄信條件 | Google Sheet / Apps Script | 已知道什麼條件下要寄信、寄給誰、信件要說什麼。 |
四、為什麼文件要先整理成表格?
多數工作資料一開始都不是乾淨的資料表,而是散落在 PDF、Email、Word、Excel 或紙本文件中。 AI 的第一個任務,是幫我們把這些資料整理成「欄位明確」的表格。
| 原始資料型態 | 常見問題 | AI 整理後要變成什麼 |
|---|---|---|
| SFT 途程單 PDF | 欄位在文件中,但不方便直接統計或自動產表。 | 製令編號、品名、規格、預計產量、加工順序、製程名稱等欄位。 |
| 會議紀錄 / 協辦紀錄 | 任務、負責人與期限混在文字中。 | 任務、負責人、截止日、狀態、下一步。 |
| 財務或收款資料 | 項目、金額、日期與狀態需人工比對。 | 客戶、日期、金額、單號、狀態、是否需追蹤。 |
| 制度文件 / SOP | 內容很長,不易查詢與分類。 | 主題、適用對象、流程步驟、負責單位、注意事項。 |
五、M3 操作:用 GPTs / Gemini 將文件整理成表格
1. 開始前,請先準備一份文件
請從你的工作中選一份實際資料,例如:
- SFT 途程單 PDF
- 會議紀錄
- 協辦進度資料
- 財務收款清單
- 制度文件或 SOP
M3 操作步驟:用 AI 整理文件
- 打開 GPTs 或 Gemini。
- 上傳 PDF / 文件,或將文字內容貼到對話框。
- 複製本講義提供的 Prompt。
- 依照你的文件類型,調整要輸出的欄位名稱。
- 送出後,等待 AI 產生表格。
- 檢查 AI 產生的表格是否有缺漏、誤判或自行補資料。
- 確認無誤後,將表格複製起來,準備貼到 Google Sheet。
2. 整理 SFT 途程單的 Prompt 範例
將 SFT 途程單 PDF 或文字內容提供給 GPTs / Gemini 後,可使用以下 Prompt:
請幫我從以下文件內容中整理成表格。
請輸出欄位:
1. 製令編號
2. 品號
3. 品名
4. 規格
5. 預計產量
6. 加工順序
7. 製程代號
8. 製程名稱
9. 製程敘述
10. 預計開工日
11. 預計完工日
請用表格輸出,方便我複製到 Google Sheet。
如果某欄位找不到,請填寫「待確認」。
請不要自行補不存在的資料。
請保持欄位名稱固定,不要任意更改欄位名稱。
以下是文件內容:
【貼上文件內容或上傳 PDF 後請 AI 讀取】
3. 整理一般任務 / 協辦進度的 Prompt 範例
請幫我把以下文字整理成任務追蹤表。
請輸出欄位:
1. 任務來源
2. 任務內容
3. 負責人
4. 截止日
5. 優先級
6. 目前狀態
7. 下一步
8. 需要通知的人
9. 通知信箱
10. 備註
如果資訊不足,請填「待確認」。
請保持欄位名稱固定,方便我貼到 Google Sheet。
請不要自行補不存在的資料。
資料如下:
【貼上文字內容】
4. AI 整理後,你要檢查什麼?
| 檢查項目 | 為什麼重要 | 檢查方式 |
|---|---|---|
| 製令編號 / 單號 | 這通常是後續追蹤與自動化的主鍵。 | 確認是否完整、格式是否一致。 |
| 日期 | 日期會影響提醒、逾期判斷與甘特圖。 | 確認格式一致,例如 yyyy/mm/dd。 |
| 數量 / 金額 | 數字錯誤會直接影響管理判斷。 | 與原始文件交叉確認。 |
| 狀態文字 | 狀態若不固定,程式無法準確判斷。 | 統一為未開始、進行中、已完成、異常、待確認。 |
| 待確認欄位 | AI 找不到的資料不可自動補猜。 | 由人工補齊後再進入自動化流程。 |
- 每一欄都有明確欄位名稱。
- 每一筆資料都放在同一列。
- 日期、數量、單號格式大致一致。
- 找不到的資料標示為「待確認」,而不是 AI 自行猜測。
- 表格可以直接複製貼到 Google Sheet。
六、M4 操作:建立可被自動化讀取的 Google Sheet
Google Sheet 在這條工作流中扮演「資料中心」角色。AI 整理好的資料,必須放進結構穩定的 Sheet,Apps Script 才能讀取與執行自動化。
M4 操作步驟:建立 Google Sheet 資料中心
- 打開 Google Drive,新增一份 Google Sheet。
- 將檔案命名,例如:SFT自主檢查表資料中心。
- 建立第一個工作表,命名為「資料表」。
- 把 AI 整理好的表格貼到第 1 列開始的位置。
- 確認第 1 列是欄位名稱,第 2 列開始才是資料內容。
- 在原有欄位右側新增自動化欄位,例如:負責人、通知信箱、產表狀態、通知狀態、最後更新時間。
- 將「產表狀態」預設為「未產生」。
- 將「通知狀態」預設為「未通知」。
- 補上測試用通知信箱,先不要使用正式大量收件人。
- 檢查資料是否每一列都有足夠資訊可以被程式讀取。
1. 以 SFT 途程單 → 自主檢查表為例
| 欄位名稱 | 用途 | 欄位類型 | 是否給 Apps Script 使用 |
|---|---|---|---|
| 製令編號 | 作為批號與資料主鍵。 | 文字 | 是 |
| 品號 | 產品代碼。 | 文字 | 視需求 |
| 品名 | 產品名稱。 | 文字 | 是 |
| 規格 | 產品尺寸或規格。 | 文字 | 是 |
| 預計產量 | 帶入自主檢查表數量欄位。 | 數字 / 文字 | 是 |
| 加工順序 | 決定每一道製程產生一張表。 | 文字 | 是 |
| 製程名稱 | 帶入自主檢查表製程欄位。 | 文字 | 是 |
| 負責人 | 知道這張表完成後通知誰。 | 文字 | 是 |
| 通知信箱 | Apps Script 寄信使用。 | 是 | |
| 產表狀態 | 避免重複產生表單。 | 下拉選單 | 是 |
| 通知狀態 | 記錄是否已寄信通知。 | 下拉選單 | 是 |
| 最後更新時間 | 記錄資料何時被處理。 | 日期時間 | 是 |
2. 建議的 Google Sheet 欄位範本
| 製令編號 | 品號 | 品名 | 規格 | 預計產量 | 加工順序 | 製程名稱 | 負責人 | 通知信箱 | 產表狀態 | 通知狀態 |
|---|---|---|---|---|---|---|---|---|---|---|
| A511-1150630009 | C-BWBF037CB0102D | CB-二管直角立式吊架 | 410*211*669 | 100 | 0010 | 手工焊接 | 王小明 | example@company.com | 未產生 | 未通知 |
| A511-1150630009 | C-BWBF037CB0102D | CB-二管直角立式吊架 | 410*211*669 | 100 | 0020 | 固定前管 | 王小明 | example@company.com | 未產生 | 未通知 |
七、設定狀態欄位下拉選單
為了避免每個人輸入不同文字,建議將狀態欄位設定為下拉選單。 這樣後續 Apps Script 才能穩定判斷資料狀態。
操作步驟:設定 Google Sheet 下拉選單
- 選取「產表狀態」欄位下方的資料範圍,例如 J2:J100。
- 點選上方選單「資料」。
- 選擇「資料驗證」。
- 新增下拉選單項目:未產生、已產生、產生失敗、待確認。
- 按下「完成」。
- 用同樣方式設定「通知狀態」欄位,例如:未通知、已通知、通知失敗、不需通知。
| 欄位 | 建議下拉選項 | 用途 |
|---|---|---|
| 產表狀態 | 未產生、已產生、產生失敗、待確認 | 控制是否要產生檢查表或工作表。 |
| 通知狀態 | 未通知、已通知、通知失敗、不需通知 | 控制是否要寄出 Email 通知。 |
| 處理狀態 | 未開始、進行中、已完成、異常、待確認 | 追蹤任務或資料處理進度。 |
八、給人看的欄位 vs 給程式用的欄位
設計 Google Sheet 時,不只要考慮人員閱讀,也要考慮後續自動化工具如何判斷。
用來讓使用者理解資料內容,例如製令編號、品名、規格、製程名稱、負責人、備註。
用來讓 Apps Script 判斷是否執行動作,例如產表狀態、通知狀態、通知信箱、最後更新時間。
| 欄位類型 | 範例欄位 | 設計重點 |
|---|---|---|
| 識別欄位 | 製令編號、單號、品號 | 格式要固定,避免同一張單有多種寫法。 |
| 內容欄位 | 品名、規格、製程名稱、任務內容 | 讓使用者看得懂,也可帶入通知信或產出表單。 |
| 狀態欄位 | 未產生、已產生、未通知、已通知、待確認 | 請使用固定選項,避免自由輸入造成判斷失準。 |
| 通知欄位 | 負責人、通知信箱、通知對象 | 信箱格式要正確,寄信前先用測試信箱。 |
| 稽核欄位 | 最後更新時間、處理人、錯誤訊息 | 方便追蹤程式是否正常執行。 |
九、認識 Apps Script 如何寄信通知
Apps Script 可以讀取 Google Sheet 中的每一列資料,根據條件判斷是否要寄信,並使用 Gmail / MailApp 將通知寄給指定收件人。
- 讀取 Google Sheet 的每一列資料。
- 檢查這一列是否符合寄信條件。
- 把欄位內容組合成 Email 主旨與內文。
- 寄出 Email。
- 把通知狀態改成「已通知」。
1. 寄信自動化的白話流程
讀取 Sheet
取得每一列的製令、製程、信箱與狀態。
判斷條件
例如產表狀態為已產生,通知狀態為未通知。
組合信件
把製令、品名、製程等欄位放入信件內容。
寄出 Email
用 MailApp.sendEmail 發送通知。
回寫狀態
將通知狀態改成已通知,避免重複寄信。
2. 通知信可以用在哪些情境?
| 觸發情境 | 判斷條件 | 通知對象 | 信件內容應包含 |
|---|---|---|---|
| 自主檢查表已產生 | 產表狀態 = 已產生,通知狀態 = 未通知 | 製造 / 品管 / 廠務 | 製令編號、製程名稱、表單連結、注意事項。 |
| 資料缺漏 | 必要欄位為空白或待確認 | 資訊組 / 資料提供者 | 缺漏欄位、需要補正的資料。 |
| 製程即將到期 | 預計完工日接近今天,狀態未完成 | 生管 / 現場主管 | 製令、製程、預計完工日、目前狀態。 |
| 外發逾期未回 | 外發回廠日逾期且狀態未回 | 生管 / 倉儲 | 外發項目、廠商、預計回廠日、風險提醒。 |
3. 簡化版寄信概念碼
實作時,你可以先使用課程提供的程式範本,不需要從零開始寫程式。 你的重點是看懂欄位如何對應,並學會調整收件人、信件主旨與信件內容。
function sendSheetNotice() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('資料表');
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
const orderNo = data[i][0]; // 製令編號
const productName = data[i][2]; // 品名
const processName = data[i][6]; // 製程名稱
const recipient = data[i][8]; // 通知信箱
const generateStatus = data[i][9]; // 產表狀態
const noticeStatus = data[i][10]; // 通知狀態
if (generateStatus === '已產生' && noticeStatus !== '已通知') {
const subject = '【自主檢查表通知】' + orderNo + ' / ' + processName;
const body =
'您好:\n\n' +
'以下自主檢查表已建立完成,請確認。\n\n' +
'製令編號:' + orderNo + '\n' +
'產品名稱:' + productName + '\n' +
'製程名稱:' + processName + '\n\n' +
'請至 Google Sheet 查看詳細內容。\n';
MailApp.sendEmail(recipient, subject, body);
sheet.getRange(i + 1, 11).setValue('已通知');
}
}
}
十、建立好的 Google Sheet 如何被寄送或分享?
Apps Script 不一定是「把整份 Google Sheet 附件寄出去」。 更常見的做法,是寄出通知信與 Google Sheet 連結,讓相關人員點開查看最新版資料。
| 方式 | 適用情境 | 優點 | 注意事項 |
|---|---|---|---|
| 寄出 Google Sheet 連結 | 內部同仁查看最新資料。 | 永遠看到最新版,不需重複寄附件。 | 權限要設定正確。 |
| 寄出指定工作表連結 | 只希望對方看特定資料表。 | 使用者不用自己找頁籤。 | 仍需檢查共用權限。 |
| 寄出 PDF 附件 | 需要固定版次、簽核或留存紀錄。 | 格式固定,適合文件保存。 | 程式設計較進階,前導課先了解概念即可。 |
| 寄出摘要內容 | 只需要通知結果,不需開表查看。 | 閱讀快速,適合主管提醒。 | 摘要內容要清楚且避免過長。 |
通知信內容建議格式
主旨:【自主檢查表已建立】製令 A511-1150630009
內容:
您好,
以下製令的自主檢查表已建立完成:
製令編號:A511-1150630009
產品名稱:CB-二管直角立式吊架
製程名稱:手工焊接
數量:100 PCS
請點選以下連結查看:
【Google Sheet 連結】
若資料有誤,請回覆資訊組確認資料來源。
十一、學員練習:完成自己的可自動化資料表
你的任務卡:完成一份可自動化資料表
- 選定一份你工作中常用的文件。
- 用 AI 將文件整理成表格。
- 檢查表格欄位是否清楚、資料是否正確。
- 將表格貼到 Google Sheet。
- 補上自動化需要的欄位。
- 設定至少一個狀態欄位。
- 設計一個未來可以觸發寄信的條件。
- 完成後,請用下方表格記錄你的設計。
| 我的文件來源 | AI 要萃取的欄位 | Sheet 必備欄位 | 程式判斷欄位 | 寄信通知對象 | 寄信觸發條件 |
|---|---|---|---|---|---|
| 例:SFT 途程單 | 製令、品名、製程、數量 | 製令編號、製程名稱、通知信箱 | 產表狀態、通知狀態 | 品管 / 製造主管 | 產表狀態 = 已產生 |
- 我的資料從哪裡來?
- AI 幫我整理了哪些欄位?
- Google Sheet 裡哪些欄位是給人看的?
- 哪些欄位是給程式判斷的?
- 什麼條件下要寄信?
- 寄信要通知誰?
十二、完成前檢查清單
在進入下一單元前,請確認你的資料表至少符合以下條件:
- 欄位名稱清楚且固定
- 資料沒有明顯錯列或漏列
- 找不到的資料標示為「待確認」
- 日期、數量、單號格式大致一致
- 第 1 列是欄位名稱
- 第 2 列開始是資料內容
- 已新增負責人與通知信箱
- 已新增狀態控制欄位
- 產表狀態有固定選項
- 通知狀態有固定選項
- 信箱格式正確
- 已先使用測試信箱
- 知道何時要寄信
- 知道要寄給誰
- 知道信件主旨要寫什麼
- 知道信件內容要包含哪些欄位
十三、常見錯誤與修正方式
| 常見錯誤 | 可能造成的問題 | 修正方式 |
|---|---|---|
| 欄位名稱每次都不同 | Apps Script 讀不到正確欄位。 | 固定欄位名稱,不要今天叫「製令」,明天叫「製令編號」。 |
| 狀態欄位自由輸入 | 同樣意思出現多種寫法,例如已通知、已寄出、完成通知。 | 使用下拉選單,固定狀態選項。 |
| 第 1 列不是欄位名稱 | 程式無法正確判斷資料位置。 | 請讓第 1 列固定放欄位名稱,第 2 列開始放資料。 |
| 通知信箱空白或格式錯誤 | Email 無法寄出,或寄錯對象。 | 先用測試信箱,確認格式正確後再使用正式收件人。 |
| AI 自行補資料 | 資料看似完整,但可能不是原始文件內容。 | Prompt 中要求 AI 找不到時填「待確認」,不要自行推測。 |
| 忘記設定通知狀態 | 程式可能重複寄出同一封通知信。 | 新增「通知狀態」欄位,寄出後回寫為「已通知」。 |
十四、本單元重點整理
GPTs / Gemini 的任務是把 PDF、文字或文件整理成欄位清楚的表格。
Google Sheet 不是只拿來存資料,而是後續自動產表、統計與寄信的核心。
Apps Script 可以讀取 Sheet,依條件產表、寄信、更新狀態。