1.設定好需要的尺寸規格
我們可以在 Figma 先開好你需要的圖片尺寸,舉例來說你可能在 Gumroad 上販售需要一個方形小封面跟橫式大封面,也想在 FB 曝光,還需要 FB 封面跟一張方形宣傳圖,推特也想推廣,橫式圖也要,格式可能都不同,所以這邊先開好需要格式,後續建立好模版後就可以一次更新所有內容
2.排版製作
3.連動 Google Sheet
4.表單 x Sheet x Figma 連動
「下 Prompt 不是越短越好,詳細的說清楚更重要」,以這個案例來說,Prompt 會下到非常詳細。
表單更新,會讓非表單格子變成空白,所以都要填寫完才能連動,但這可以等報名結束後再處理,或是透過 APP Script 來協助自動化處理。
Prompt:
我有一個需求是需要在 Google 表單填寫後,回傳 Sheet 可以讓指定的表格填上我要的函式,解決表單新資料進入後的函式問題,我接下來會提供我的詳細需求
Ans:
我理解您的需求是關於在 Google 表單填寫後,自動在相關的 Google Sheet 中填入特定函式,以處理新進入的表單資料。這是一個非常實用的自動化需求,可以大大提高工作效率。我很樂意協助您實現這個功能。
為了更好地幫助您,我需要一些更詳細的信息:
您使用的是 Google 表單(Google Forms)還是其他類型的表單?
表單填寫後,數據是直接進入 Google Sheet 嗎?還是需要額外的步驟將數據導入 Sheet?
您希望在 Sheet 的哪些列或行中填入函式?是固定的位置還是根據新數據的位置動態決定?
您想要填入的是什麼類型的函式?例如,是簡單的計算函式,還是更複雜的數據處理函式?
您是否已經有了特定的函式,只是需要將它們自動填入,還是需要幫助設計這些函式?
您是否熟悉 Google Apps Script?因為實現這個功能很可能需要使用到 Apps Script。
是否有任何特殊的條件或限制需要考慮?比如數據保密性、處理速度等。
請提供這些詳細信息,這樣我就可以為您提供更精確和有針對性的解決方案。我們可以一步步地設計出最適合您需求的自動化流程。
Prompt:
我很簡單,就是需要在新資料進入後自動在指定欄位填入指定資料,請給我函式
Ans:
非常感謝您的澄清。我理解您的需求是在新資料進入 Google Sheet 後,自動在指定欄位填入指定資料。這確實是一個常見且實用的需求。我們可以使用 Google Apps Script 來實現這個功能。
以下是一個基本的 Google Apps Script 函式,可以在新行添加到 Sheet 時自動填入指定資料:
function onFormSubmit(e) {
// 獲取活動的 spreadsheet 和工作表
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 獲取最後一行的行號
var lastRow = sheet.getLastRow();
// 在指定欄位填入指定資料
// 假設我們要在 F 列填入 "已處理",在 G 列填入當前日期
sheet.getRange(lastRow, 6).setValue("已處理");
sheet.getRange(lastRow, 7).setValue(new Date());
}
使用說明:
打開您的 Google Sheet。
點擊 "工具" > "指令碼編輯器"。
在打開的指令碼編輯器中,貼上上面的代碼。
保存指令碼(檔案 > 儲存)。
返回到 Sheet,點擊 "工具" > "指令碼編輯器" > "當前專案的觸發條件"。
點擊 "新增觸發條件",設置如下:
選擇要執行的函式:onFormSubmit 部署作為:總表 選取活動來源:從試算表 活動類型:提交表單時 保存觸發條件。
這個指令碼會在每次有新的表單提交(即新行添加到 Sheet)時自動運行。它會在 F 列(第 6 列)填入 "已處理",在 G 列(第 7 列)填入當前日期。
您可以根據實際需求修改代碼:
要更改填入的欄位,修改 getRange() 中的數字。例如,getRange(lastRow, 8) 會填入 H 列。 要更改填入的內容,修改 setValue() 中的值。 如果您需要填入更複雜的數據或進行更多操作,我們可以進一步擴展這個函式。例如,您可能想要:
根據其他欄位的值來決定填入什麼 進行計算後填入結果 填入不同類型的數據(如公式、超連結等) 請告訴我是否這個基本函式滿足您的需求,或者您是否需要進一步的修改或擴展。我很樂意幫您調整代碼以完全符合您的具體需求。
Prompt:
例如我要在新資料進入後,F2 之後的欄位,只要有新資料就自動帶入 =COLOR_CODE(E2) 這個函式,我該怎麼寫
Ans:
非常感謝您提供更具體的需求。我理解您希望在新資料進入後,從 F2 開始的欄位,只要有新資料就自動帶入 =COLOR_CODE(E2) 這個函式。我們可以修改之前的 Google Apps Script 來實現這個功能。以下是更新後的代碼:
function onFormSubmit(e) {
// 獲取活動的 spreadsheet 和工作表
var sheet = SpreadshreadApp.getActiveSpreadsheet().getActiveSheet();
// 獲取最後一行的行號
var lastRow = sheet.getLastRow();
// 獲取資料範圍(假設資料從 A 列開始)
var dataRange = sheet.getRange(lastRow, 1, 1, sheet.getLastColumn());
var values = dataRange.getValues()[0];
// 從 F 列開始檢查並填入函式
for (var i = 5; i < values.length; i++) { // 5 代表 F 列(因為索引從 0 開始)
if (values[i] !== "") { // 如果欄位不為空
// 計算對應的 E 列儲存格地址
var eColumnCell = sheet.getRange(lastRow, 5).getA1Notation();
// 填入函式
sheet.getRange(lastRow, i + 1).setFormula('=COLOR_CODE(' + eColumnCell + ')');
}
}
}
這個腳本的工作原理如下:
它會在每次有新的表單提交(即新行添加到 Sheet)時自動運行。
腳本獲取最後一行(新添加的行)的所有數據。
從 F 列開始(索引 5,因為索引從 0 開始),它會檢查每一列。
如果該列有數據(不為空),腳本會在該儲存格中填入 =COLOR_CODE(E2) 函式,其中 E2 會根據實際的行號動態調整。
這個過程會一直持續到最後一列有數據的地方。
使用說明:
打開您的 Google Sheet。
點擊 "工具" > "指令碼編輯器"。
在打開的指令碼編輯器中,貼上上面的代碼。
保存指令碼(檔案 > 儲存)。
返回到 Sheet,點擊 "工具" > "指令碼編輯器" > "當前專案的觸發條件"。
點擊 "新增觸發條件",設置如下:
選擇要執行的函式:onFormSubmit 部署作為:總表 選取活動來源:從試算表 活動類型:提交表單時 保存觸發條件。
請注意:
這個腳本假設 COLOR_CODE 函式已經在您的 Google Sheet 中定義。如果它是一個自定義函式,請確保它已經正確設置。 腳本會從 F 列開始填入函式,一直到最後一個有數據的列。 如果某一列沒有數據,腳本會跳過該列,不填入函式。 如果您需要進行任何調整,例如更改起始列或修改填入的函式,請告訴我,我很樂意幫您進一步定制這個腳本。
5.怎麼寫 APP Script
不會寫程式沒關係,我們可以把需求詳細描述給 AI,讓他協助處理
function onFormSubmit(e) { // 獲取表單提交的數據 var range = e.range; var row = range.getRow(); var values = range.getValues()[0];
// 獲取目標工作表 var sheet = range.getSheet();
// F 列:=COLOR_CODE(E6) var fCell = sheet.getRange(row, 6); // F 列是第 6 列 fCell.setFormula('=COLOR_CODE(E' + row + ')');
// G 列:=MID(F4,2,6) var gCell = sheet.getRange(row, 7); // G 列是第 7 列 gCell.setFormula('=MID(F' + row + ',2,6)');
// I 列:https://drive.google.com/thumbnail?id= var iCell = sheet.getRange(row, 9); // I 列是第 9 列 iCell.setValue('https://drive.google.com/thumbnail?id=');
// J 列:=MID(H2,34,33) var jCell = sheet.getRange(row, 10); // J 列是第 10 列 jCell.setFormula('=MID(H' + row + ',34,33)');
// K 列:&sz=w1200 var kCell = sheet.getRange(row, 11); // K 列是第 11 列 kCell.setValue('&sz=w1200');
// L 列:=CONCATENATE(I2,J2,K2) var lCell = sheet.getRange(row, 12); // L 列是第 12 列 lCell.setFormula('=CONCATENATE(I' + row + ',J' + row + ',K' + row + ')');
// N 列:https://api.qrserver.com/v1/create-qr-code/?data= var nCell = sheet.getRange(row, 14); // N 列是第 14 列 nCell.setValue('https://api.qrserver.com/v1/create-qr-code/?data=');
// O 列:&size=120x120 var oCell = sheet.getRange(row, 15); // O 列是第 15 列 oCell.setValue('&size=120x120');
// P 列:&color= var pCell = sheet.getRange(row, 16); // P 列是第 16 列 pCell.setValue('&color=');
// Q 列:&bgcolor=FFFFFF&margin=10 var qCell = sheet.getRange(row, 17); // Q 列是第 17 列 qCell.setValue('&bgcolor=FFFFFF&margin=10');
// R 列:=CONCATENATE(P2,G2,Q2) var rCell = sheet.getRange(row, 18); // R 列是第 18 列 rCell.setFormula('=CONCATENATE(P' + row + ',G' + row + ',Q' + row + ')');
// S 列:=(N2&M2&O2&R2) var sCell = sheet.getRange(row, 19); // S 列是第 19 列 sCell.setFormula('=(N' + row + '&M' + row + '&O' + row + '&R' + row + ')'); }
6.印刷問題
1.Figma 只能輸出 RGB,一定會色偏
2.可以使用付費外掛解決(每月 12 美金,一年 8 折)
Print for Figma | CMYK, Bleed, Crop Marks, DPI | Figma - Figma
3.實際印刷測試調色
4.使用網路上工具轉檔
以上都需要輸出先看色,最好實際印刷會比較準
👀 關於創作邦
我是凱文設計的 Kevin,建立創作邦是希望幫助更多跟我一樣的創作者可以更輕鬆有效的完成各式創作,創作邦會持續分享更多實用資源、應用心得文,來幫助大家更好的創作。
⬇️ 我的社群
✊ 支持創作邦與凱文設計
小額贊助 │ 幫助網站更好的營運下去
數位商品 │ 創作者排版心法
訂閱電子報,每週給你充實內容!
一起加入 4,500+ 人的學習行列,讓我們高效學習,有效成長!
電子報更新內容(每週三早上 7 點):
- 每週社群更新內容
- 創作邦最新文章
- 創作邦 YT 更新內容
- 創作邦每週更新資源
- 每週觀察與好康推薦