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
-
放了四天假,第一天上班 就看到Server出了點問題, 開工作管理員沒看到有吃大量記憶體的程式, 後來查到一篇, 黑暗執行緒-Windows記憶體都用到哪裡去了? 去抓了 RAMMap 來用,才發現所有的記憶體都被Drier Locked吃掉了,大約有4xG 看了幾篇文章 ...
-
前言 最近發現的,電腦開機過一段時間後,記憶體常被咬滿。 但看真實的記憶體使用量,又沒有特定的程式在使用。 最後才看到,『非分頁集區的記憶體』高的很誇張。
-
總是要用到下面的script 就是上一篇講沒很多的 @name @namespace @version @author @description ..這些東西 原文請參考 官網 簡單的就帶過, 困難的就略過, 普通的就掃過。XD 自己要用的其實上面打什...
-
首先來說起因源由, 因為以前常用的F2碰到了硬碟的GPT格式就不能用。 有試過改電腦的bios,但不是每台電腦都能改。 所以,回來當MIS後,就開始找其他備份軟體了。 此軟體的 安裝、下載,不解釋,網路上很多教學。 值得一提的是,有些電腦如果你設定了秒數,但一直都沒看到...
-
前言 弄MsChart的時候,搞了太多的參數, 不寫一下又怕到時忘記
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