2025年3月30日 星期日

【Google教學】使用正規表示法抓取網頁含有下拉選項預設值的表格(使用chatgpt)



這是網友在discord中發問的問題,因為表格的資料含有下拉選項,沒有辦法用複製貼上的方式,將資料複製到試算表中,所以我就將這個問題問三個AI的軟體(chatgpt、coplit、aistudio),第一次的解答只有抓到下拉選項的預設值,貼上原始碼的HTML跟它說要抓取的結構時,回傳的程式碼就會是接近想要的答案。


問題說明

詢問AI

實作

修正除錯


瞭解正規表示法


貼結果圖請AI整理


使用正規表示法抓取網頁下拉選項預設值

https://docs.google.com/spreadsheets/d/1EGdQTj5uJk5IKfbWfzA_0qX_OE9I9vDKku1mfbjejYM/copy


AI整理後

影片重點整理:

  1. 主題: 使用正規表示法,抓取含下拉選單預設值的表格。

  2. 背景: 源於 Discord 上的網友提問,因無法複製貼上含下拉選單表格資料。

  3. 實驗:

    • 使用三個 AI 工具 (ChatGPT、Copilot、AI Studio) 協助。

    • 將資料匯入試算表。

  4. 要點:

    • 貼上原始碼 HTML 有助於 AI 抓取結構。

    • 程式碼名稱不能與預設相同,否則會發生錯誤。

    • 每次使用請檢查是否要授權。

    • 注意 Sheet 名稱設定。

  5. 結論:

    • 若提問方式錯誤,結果也會不正確。

    • 需要與 AI 工具溝通清楚。

此外,影片有程式碼的操作演示,詳細內容請參考影片。

2025年3月23日 星期日

【Google教學】如何申請LineBot並查詢群組id跟送訊息



之前寫的LineBot查詢群組id,經網友回報我產生的跟它自己用程式產生的id是不相同的,所以要使用Line群組id就要自己寫查詢id的程式才能使用,若是個人要通報用可以到line官網查到個人lineid即可,每個人在不同人群組的lineid都是不相同的,只有該群組的line機器人可以對該群組產生的lineid送訊息,若群組有5人,傳送一次就是5則訊息,免費每個月可以傳送200則,剩餘則數可以上官網查詢(非即時)。


PS:一個群組只能有一個LineBot機器人


--個人--

如何申請lineBot機器人

取得LineToke

取得LineId

--群組--

試算表發佈網頁應用程式/取得網址

啟用webhook/貼上網址


--如何查看錯誤--


LineBot查群組ID跟送訊息

https://docs.google.com/spreadsheets/d/1U0BeBLyZMpTuv26iWo_UrYDl3Xz1DlnBCptncSEThGk/copy




2025年3月15日 星期六

【Google教學】如何用GoogleAppsScript爬取網頁看youtube的所有留言(使用chatgpt的作法)

 


有些人會在youtube影片的留言來抽獎的作法,那我們怎麼去把某一篇影片的留言都抓到google試算表,我們把這個問題拿去問AI(chatgpt),它提供我們程式碼及作法。


1.申請YouTube Data API 來獲取留言

2.查看要查詢的youtube影片ID

3.修改程式碼並執行



程式碼:

function getYouTubeComments() {

  var apiKey = "YOUR_API_KEY";  // 請填入你的 YouTube API Key

  var videoId = "YOUR_VIDEO_ID"; // 影片 ID

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  sheet.clear(); // 清空試算表

  sheet.appendRow(["作者", "留言", "發佈時間 (台灣)", "喜歡數"]); // 更新標題


  var nextPageToken = "";

  var maxResults = 100;


  do {

    var url = "https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId=" 

              + videoId + "&key=" + apiKey + "&maxResults=" + maxResults + "&pageToken=" + nextPageToken;

    

    var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});

    var json = JSON.parse(response.getContentText());


    if (json.items) {

      json.items.forEach(function(item) {

        var snippet = item.snippet.topLevelComment.snippet;

        var author = snippet.authorDisplayName;

        var comment = snippet.textDisplay;

        var publishedAt = snippet.publishedAt; // 原始 UTC 時間

        var likeCount = snippet.likeCount;


        // 轉換 UTC 時間為台灣時間 (UTC+8)

        var taiwanTime = convertToTaiwanTime(publishedAt);


        sheet.appendRow([author, comment, taiwanTime, likeCount]);

      });

    }


    nextPageToken = json.nextPageToken || "";

  } while (nextPageToken);

}


// 轉換 UTC 時間到台灣時間 (UTC+8)

function convertToTaiwanTime(utcTime) {

  var date = new Date(utcTime);  // 解析 ISO 時間字串

  date.setHours(date.getHours() + 8); // 加 8 小時變成台灣時間

  return date.toISOString().replace("T", " ").split(".")[0]; // 格式化輸出 YYYY-MM-DD HH:mm:ss

}



2025年3月8日 星期六

【excel教學】如何使用PowerQuery將一筆合併後欄位還原成多筆(使用chatgpt的作法)


早期沒有PowerQuery時,我有寫一個快速分割相同資料合併後的欄位的excel工具,現

在excel 2016後(含)可以使用PowerQuery就可以做到這個功能這是我用圖片問Chatgpt

要如何解決,它給我2個解答,我今天就來操作如何使用PowerQuery來做操作。



方法 1:使用 Power Query(適合無程式背景的使用者)

步驟

選取資料(A1:C9)。

點擊「資料」→「從表格/範圍」(會自動建立表格)。

拆分「計數」欄位:

選取「計數」欄位,點擊「轉換」→「拆分欄位」→「以分隔符號」。

選擇 逗號(,) 為分隔符號,然後按「確定」。

轉換成縱向表格:

選取 所有拆分後的欄位(計數.1、計數.2...)。

點擊「轉換」→「取消透視欄」。

重新命名欄位:

「屬性」欄改為「訂單編號」。

「值」欄改為「訂單號」。

關閉並載入:

點擊「關閉並載入」將結果匯入 Excel。


【Excel工具教學】在Excel中快速分割相同資料合併後的欄位

https://www.youtube.com/watch?v=JSVY6FqIeKM


範例檔案下載:

https://drive.google.com/file/d/167hIW3W6fB4Y25AO4nuB-icSgs6EmSut/view

PowerQuery合併相同欄位.xlsx


GoogleAI整理後的大綱



I. 開場與主題介紹 (0:00 - 0:16)

* 講者自我介紹:彰化一整天的 Blog 站長。

* 說明今日主題:使用 Excel 的 Power Query 功能,將單一欄位中以分隔符號合併的多筆資料,拆分成多列資料。

* 提及此方法是參考 ChatGPT 提供的解決方案。


II. 背景說明 (0:17 - 0:31)

* 早期方法:在沒有 Power Query 時,講者曾寫過 Excel 工具 (VBA) 來處理類似問題。

* 現況:Excel 2016 及之後版本內建 Power Query,可以直接達成此功能。


III. ChatGPT 解決方案來源 (0:32 - 1:18)

* 問題提出:講者使用圖片向 ChatGPT 詢問如何將左邊(合併欄位)的表格轉換成右邊(拆分欄位成多列)的格式。

* ChatGPT 回覆:提供了兩種方法:

1. Power Query (適合無程式背景使用者)。

2. VBA (自動化轉換)。

* 本次教學重點:著重於 Power Query 的操作方法。


IV. Power Query 操作示範 (1:18 - 5:34)

* 準備資料 (1:18 - 1:48)

* 從範例連結複製資料。

* 貼到新的 Excel 工作表中。

* 載入 Power Query (1:48 - 2:36)

* 選取資料範圍 (A1:C9)。

* 點選 資料 -> 從表格/範圍。

* 建立表格對話框:勾選 我的表格有標題,按 確定。

* 進入 Power Query 編輯器。

* 分割欄位 (2:36 - 3:14)

* 選取要分割的 計數 欄位。

* 點選 常用 -> 分割資料行 -> 依分隔符號。

* 確認分隔符號為 逗號,按 確定。 (欄位被分割成 計數.1, 計數.2, 計數.3...)

* 取消樞紐分析 (Unpivot) (3:14 - 4:04)

* 選取所有分割後產生的新欄位 (計數.1, 計數.2, 計數.3...)。

* 點選 轉換 -> 取消樞紐分析資料行。 (產生 屬性 和 值 兩個新欄位)

* 重新命名與整理欄位 (4:04 - 4:58)

* 移除 屬性 欄位 (此範例中不需要)。

* 將 值 欄位重新命名為 訂單編號。

* 關閉並載入 (4:58 - 5:34)

* 點選 常用 -> 關閉並載入。

* 結果會載入到新的 Excel 工作表中,呈現拆分後的格式。


V. 提及其他方法 (5:34 - 8:18)

* VBA 方法 (5:40 - 6:23)

* 簡述 ChatGPT 提供的 VBA 步驟 (開啟 VBA 編輯器、插入模組、貼上程式碼、執行)。

* 說明 Power Query 較直覺,VBA 較方便自動化。

* 講者舊工具 (6:24 - 8:16)

* 提及講者早期使用 VBA 製作的 Excel 工具,並提供影片連結參考。

* 展示舊工具的操作方式(選取欄位、指定分隔符號、指定分割欄位)。


【Google教學】自訂你的股票觀察清單!用Google試算表輕鬆追蹤特定股票價格

之前的教學可能介紹過如何用Google試算表下載「全部」的股票價格,但很多時候,我們其實只想關心手上持有的幾支股票,或是正在觀察的特定標的。下載所有股票資料不僅耗時,也讓表格變得臃腫。 那麼,有沒有辦法只追蹤我想看的股票呢?答案是肯定的!今天就要跟大家分享,如何利用Google試...