Skip to content
💻程式#116入門金字塔 · 做
工程師顧問經營者Gemini#Google Sheet#資料查詢#內部工具

Google Sheet 資料查詢工具:即時搜尋介面

用途

把一張現有的 Google Sheet 快速做成帶搜尋框和篩選功能的查詢介面,讓非技術同仁也能自助查資料,不用每次都問你。

何時用

  • 適合:已有一張 Google Sheet(價目表、產品目錄、客戶通訊錄、庫存清單)想快速做成可搜尋的網頁工具時。
  • 不要用:Sheet 有寫入需求(這道 prompt 做的是唯讀查詢介面);或是資料源是資料庫、API 而非 Google Sheet(請用 API 整合版)。

Prompt

text
我有一張 Google Sheet,想做成線上查詢工具。

Sheet 資訊:
- 分享連結:{{Google Sheet 公開分享連結}}
- 分頁名稱:{{要用的分頁名稱,例:產品目錄}}
- 欄位清單:{{所有欄位名稱,例:品項編號/品名/規格/單位/定價/庫存數量/適用分類}}

工具名稱:{{工具名稱,例:產品目錄查詢系統}}

功能需求:
- 搜尋框:輸入關鍵字即時過濾(不需按搜尋按鈕)
- 分類下拉:依「{{篩選欄位,例:適用分類}}」篩選
- 結果表格:顯示 {{要顯示的欄位,例:品名/規格/定價/庫存數量}}
- 每次打開重新讀取最新 Sheet 資料(不快取舊資料)

介面:全繁體中文,版面簡潔,手機也能操作
輸出:完整單一 HTML 檔案

範例 / 變體

  • 填好變數:分享連結填入你的 Sheet 連結(確認已設定「知道連結的人可以查看」)、分頁名稱填 產品目錄、欄位清單填 品項編號/品名/規格/定價/庫存、篩選欄位填 適用分類
  • 變體(多欄搜尋):功能需求加「搜尋框同時搜品名和規格欄位」,讓搜尋更全面。
  • 變體(加匯出按鈕):功能需求加「加一個「匯出篩選結果 CSV」按鈕」,讓業務同仁可以把查詢結果帶走。

🎯 範例輸出(實測)

Gemini 跑這句、工具名稱填「產品目錄查詢系統」、分頁名稱填「產品目錄」、欄位清單填「品項編號/品名/規格/定價/庫存數量/適用分類」、篩選欄位填「適用分類」的結果:

點開看 AI 實際輸出

Gemini 輸出完整單一 HTML 檔案,核心邏輯如下:

Google Sheets JSON API 呼叫方式:

text
const SHEET_ID = "YOUR_SHEET_ID_HERE";  // 從分享連結取得
const SHEET_NAME = encodeURIComponent("產品目錄");
const API_URL = `https://docs.google.com/spreadsheets/d/${SHEET_ID}/gviz/tq?tqx=out:json&sheet=${SHEET_NAME}`;

async function loadSheetData() {
  const res = await fetch(API_URL);
  const text = await res.text();
  // Google Sheets 回應是 JSONP 格式,需要去掉前後的包裝
  const json = JSON.parse(text.substring(47, text.length - 2));
  return parseRows(json.table);
}

即時搜尋邏輯(不需按按鈕):

text
document.getElementById('search-input').addEventListener('input', function() {
  const keyword = this.value.toLowerCase();
  const category = document.getElementById('category-filter').value;
  const filtered = allData.filter(row => {
    const matchKeyword = !keyword ||
      row['品名'].toLowerCase().includes(keyword) ||
      row['規格'].toLowerCase().includes(keyword);
    const matchCategory = !category || row['適用分類'] === category;
    return matchKeyword && matchCategory;
  });
  renderTable(filtered);
});

介面結構:

  • 搜尋框(即時過濾)+分類下拉選單(同行)
  • 結果表格:品名|規格|定價|庫存數量
  • 庫存為 0 的列自動標紅色警示
  • 手機版自動隱藏「規格」欄,保留最關鍵欄位

資料讀取失敗時的錯誤提示: 「無法載入資料,請確認 Google Sheet 已設定為「知道連結的人可以查看」」

💡 實測心得:Google Sheets JSON API 回應格式是 JSONP 不是純 JSON,Gemini 生成的解析程式碼要留意 substring(47, ...) 這個數字——不同版本的 Google API 包裝前綴字元數可能不同,實際測試時要確認一下截取的 JSON 是否正確。

延伸

簡單來說,這道 prompt 的核心是讓 Sheet 當作唯讀資料庫,HTML 工具當作查詢介面,兩者用 Google Sheets JSON API 串在一起。限制是 Sheet 必須設定為公開分享,且沒有欄寫入功能。如果查詢工具做好了想加 AI 自動分析(例:按一個按鈕讓 AI 摘要庫存異常),接著用「職場小工具加 AI 功能」。

依場景分類 · 一鍵複製 · 持續擴充