2023年7月28日 星期五
2020年4月29日 星期三
[GAS]Google App Script 簡易使用post,get,把Google Excel當簡易資料庫
前言
有天爬文爬一爬,突然看到Google Excel可以用post跟get的方式,將資料傳去google excel內。
2015年11月24日 星期二
Google app script從form送出後丟去新的sheet
摘要:Google app script從form送出後丟去新的sheet
逛到PTT的小說版,說需要自動使用google的表單再將資料轉成另一個sheet做紀錄。
以下為測試程式碼
幾點備忘事項
1.在試算表新增程式碼,並設定trigger,將form submit綁在myFunction上面。
2.Logger.log,可從檢視->log觀察此次執行的資料。
3.SpreadsheetApp.openById 從網址列取得試算表的ID。
4.換行為 \n
5.getRange從1開始,但轉成getValues是從0開始。
逛到PTT的小說版,說需要自動使用google的表單再將資料轉成另一個sheet做紀錄。
以下為測試程式碼
幾點備忘事項
1.在試算表新增程式碼,並設定trigger,將form submit綁在myFunction上面。
2.Logger.log,可從檢視->log觀察此次執行的資料。
3.SpreadsheetApp.openById 從網址列取得試算表的ID。
4.換行為 \n
5.getRange從1開始,但轉成getValues是從0開始。
/**
* A trigger-driven function that sends out calendar invitations and a
* personalized Google Docs itinerary after a user responds to the form.
*
* @param {Object} e The event parameter for form submission to a spreadsheet;
* see https://developers.google.com/apps-script/understanding_events
*/
function myFunction(e) {
Logger.log('----------------->');
Logger.log(JSON.stringify(e));
Logger.log('----------------->');
var novel = e.namedValues['請輸入您想評價的小說書名。'][0];
var author = e.namedValues['請告訴我這本小說的作者是誰。'][0];
var category = e.namedValues['請選擇這部小說的分類。'][0];
var grade = e.namedValues['請選擇您對這部小說的評價。'][0];
var discuss = e.namedValues['請以文字簡單回答您對這部小說的看法。'][0];
//Logger.log(novel+","+author+","+category+"+"+grade+","+discuss);
OpenSheet(novel,author,category,grade,discuss);
}
function test(){
var novel = "半仙闖江湖";
var author = "作者";
var category = "網遊";
var grade = "3";
var discuss = "推推推";
OpenSheet(novel,author,category,grade,discuss);
}
function OpenSheet(novel,author,category,grade,discuss){
var ss = SpreadsheetApp.openById("***************2pk5LvU2F4yqM");//此處輸入要開啟的excel id
Logger.log(ss.getName());
var sheetCategory = ss.getSheetByName(category);
var lastRow = sheetCategory.getLastRow();
var maxCol = sheetCategory.getMaxColumns();
var arrRange = sheetCategory.getRange(3, 1, lastRow,2);
//Logger.log(maxCol);
var arrVal = arrRange.getValues();
// Logger.log(arrVal);
var repeat = false;
for(var i = 0;i<lastRow;i++)
{
Logger.log(arrVal[i][1]);
if(arrVal[i][1]==novel)
{
//評語
var update = sheetCategory.getRange((i+3),1,1,maxCol);
var arrUpdate = update.getValues();
for(var j = 9;j<maxCol;j++)
{
if(arrUpdate[0][j].toString()==""){
// var nowVal = update.getCell(1, j).getValue() + "\n"+discuss; // 同一個欄位斷行
update.getCell(1, (j+1)).setValue(discuss); //新的一欄
break;
}
}
//計算票數
var grassCount;
var grassCell;
switch (grade)
{
//毒草
case "1":
grassCell = update.getCell(1, 7);
break;
//普通草
case "2":
grassCell = update.getCell(1, 6);
break;
//仙草
case "3":
grassCell = update.getCell(1, 5);
break;
}
grassCount = grassCell.getValue();
grassCell.setValue(grassCount+1);
repeat = true;
}
if(arrVal[i][1].toString()==""){
lastRow = i+3;
break;
}
}
if(repeat==false){
var maxCol = sheetCategory.getMaxColumns()
var insert = sheetCategory.getRange(lastRow,1,1,10);
Logger.log("lastrow:"+lastRow+";"+insert.getValues());
insert.getCell(1,2).setValue(novel);
insert.getCell(1,3).setValue(author);
insert.getCell(1,4).setValue("謎");
switch (grade)
{
//毒草
case "1":
insert.getCell(1, 7).setValue(1);
insert.getCell(1, 6).setValue(0);
insert.getCell(1, 5).setValue(0);
break;
//普通草
case "2":
insert.getCell(1, 6).setValue(1);
insert.getCell(1, 7).setValue(0);
insert.getCell(1, 5).setValue(0);
break;
//仙草
case "3":
insert.getCell(1, 5).setValue(1);
insert.getCell(1, 6).setValue(0);
insert.getCell(1, 7).setValue(0);
break;
}
insert.getCell(1,8).setValue("本書的簡介是個謎"); //介紹
insert.getCell(1,9).setValue(discuss);
}
}
總網頁瀏覽量
About
每次一句
Popular Posts
-
上一篇寫到 快速使用Line Notify 這個只能丟給自己happy一下 現在要取得路人甲的token 首先要幾個東西 1.https的加密網頁 ,如果沒有的話 請去申請 heroku 2.要有GIT ,沒有的話等等下面的heroku的CLI裡面就有了,可以一起安裝...
-
前言 先前寫了一個定時檢查server 硬碟空間大小的程式,但沒有寫目前的使用量幾% 今天要補上的時候,才發現Powershell的多參數傳遞方式跟別人不一樣。
-
前言 我也沒想到會寫到第二篇,第一篇是 [WIN10]非分頁集區記憶體暴增 改了regedit後還是沒用 , 這下只能去追看是哪個地方出問題了。 這邊會用到的工具有 poolmon跟 Windows Performance Analyzer(WPA)
-
前言 某一個禮拜六的早上,發現我的Line Notify沒有收到爬蟲爬出來的訊息, 就知道事情不妙了。後來一查才知道整個Container掛了。 搞了好幾天,本來想乾脆直接重裝一個Container算了(反正scrapyd沒啥要設定的), 最後還是有解決。
-
上一篇說到 HyperV 主體機複製檔案(資料夾)給客體 Use Copy-VMFile 這次要從客體把檔案丟出來到實體機上面, 時間緊迫,單純寫指令已經來不及了, 後來只好再回到原路,開啟『增強的工作階段模式』 看能不能用拖拉的方式把檔案拉出來。參考 德瑞克:SQL ...
Blog Archive
-
▼
2023
(34)
-
▼
7月
(15)
- [雜談]這篇是六百零一篇了
- [k8s]kubeadm重新產生驗證
- [Terraform]terraform 部署,啓動docker安裝metadata_startup...
- [Terraform]Terraform的基本概念
- [Terraform]用chatGPT學Terraform
- [Git]git submodule 下載失敗
- [K8s]k8s 的sercret複製
- [GCP]gcs cors設定
- [GCP]gcs自動刪除檔案
- [GCP]GCS 掛載domain
- [k8s]openlens 還原 pod shell or logs button
- [Scrapy]gerapy+scrapyd+mongo爬蟲整套流程
- [GKE]kubecolor 直觀的kubectl
- [GKE] 一步步篩選k8s的deploy內容
- [Google]Google sheet 使用 Query
-
▼
7月
(15)
Categories
.NET
小技巧
小說
文章分享
正規表示法
序列埠通訊
居家
拼圖
科學上網
逆向工程
偽文青
軟體
硬體
程式概念
逸品
雲端
試算表
資料庫
資訊安全
電影
演算法
網站心得
網路
機器學習
隨筆
鍵盤
雜事記錄
Android
ATOM
AutoIT
Blogger
Chrome
CSS
Dapper
dd-wrt
Debug
DevOops
DISM
DIY
Docker
Driver
Drone
EasyUI
ECK
EPPlus
EXCEL
FFmpeg
Flot Chart
GCP
Git
GKE
Golang
Google App Script
Grafana
IIS
iOS
istio
iTunes
JavaScript
jQuery
k8s
Katalon
Kubernetes
Line
LINQ
LinqToExcel
Linux
Log4Net
MAC
MailKit
Modbus
moment
MS SQL
MsChart
Nginx
NPOI
Nuget
OpenCV
OpenData
Oracle
PHP
Postgresql
powerBuilder
PowerShell
Prometheus
Python
Raspberry
Redis
ReportViwer
RPA
Scrapy
shellScript
SignalR
Solr
SQL CLR
SRE
SRS
Swagger
T-SQL
tampermonkey
Terraform
TFS
TypeScript
Ubuntu
USB安裝
VBA
VivoStick
VMware
VPN
VS Code
WebAPI
Windchill
Windows 10
Windows 7
Windows OS
Windows Server
WorePress
Xpath
Zookeeper