通过cURL/PHP将新行插入谷歌电子表格-如何?
有没有关于如何做到这一点的脚本或教程?如何实现将PHP应用程序中的数据插入Google电子表格 我看过API(),没有PHP代码/示例 我已经尝试了Zend库实现,但是这种方法似乎非常过时,因为我在一个简单的行插入中遇到了一些愚蠢的错误 我认为我不能使用GoogleApps脚本(),因为我不知道如何从PHP脚本编码和触发 还有别的吗 难道没有一个可行的API,我们可以很容易地使用和利用它吗 我不认为我可以使用GoogleApps脚本,因为我不知道如何从PHP脚本编码和触发 当然可以。您可以使用GoogleApps脚本创建web服务,该脚本可以接收和处理服务请求。将参数传递给web服务很简单,例如,可以使用cURL来完成 以下示例适用于具有两列的简单电子表格。您可以通过以下方式添加更多行:通过cURL/PHP将新行插入谷歌电子表格-如何?,php,google-apps-script,google-sheets,Php,Google Apps Script,Google Sheets,有没有关于如何做到这一点的脚本或教程?如何实现将PHP应用程序中的数据插入Google电子表格 我看过API(),没有PHP代码/示例 我已经尝试了Zend库实现,但是这种方法似乎非常过时,因为我在一个简单的行插入中遇到了一些愚蠢的错误 我认为我不能使用GoogleApps脚本(),因为我不知道如何从PHP脚本编码和触发 还有别的吗 难道没有一个可行的API,我们可以很容易地使用和利用它吗 我不认为我可以使用GoogleApps脚本,因为我不知道如何从PHP脚本编码和触发 当然可以。您可以使用G
curl -L <SCRIPT URL>?col1='Value for column 1'&col2='Another value'
说明书
这是一个循序渐进的过程
--电子表格id--
(很容易找到)?col1='Colum1Data'&col2='Colum2Data'
附加到URL,或根据需要进行编辑,以将数据从URL推送到电子表格中function doGet(e) {
Logger.log( JSON.stringify(e) ); // view parameters
var result = 'Ok'; // assume success
if (e.parameter == undefined) {
result = 'No Parameters';
}
else {
var id = '--spreadsheet-id--'; // Spreadsheet id
var sheet = SpreadsheetApp.openById(id).getActiveSheet();
var newRow = sheet.getLastRow() + 1;
var rowData = [];
for (var param in e.parameter) {
Logger.log('In for loop, param='+param);
var value = stripQuotes(e.parameter[param]);
//Logger.log(param + ':' + e.parameter[param]);
switch (param) {
case 'col1':
rowData[0] = value;
break;
case 'col2':
rowData[1] = value;
break;
default:
result = "unsupported parameter";
}
}
Logger.log(JSON.stringify(rowData));
// Write new row to spreadsheet
var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
newRange.setValues([rowData]);
}
// Return result of operation
return ContentService.createTextOutput(result);
}
/**
* Remove leading and trailing single or double quotes
*/
function stripQuotes( value ) {
return value.replace(/^["']|['"]$/g, "");
}
你应该仔细阅读谷歌的内容服务文档,特别是关于重定向的注意事项和敏感信息。找到这篇文章我非常兴奋!我使用我的Google Sheets电子表格id将您的Code.gs副本部署为web应用程序。当我访问它时,每次都会得到错误的值,即使我以与您的示例链接相同的方式访问它。即使我弄坏了工作表id,该错误消息也不会更改,因此似乎与此无关。有什么建议吗?@jerrygarciuh:我不清楚你所说的“坏价值”是什么意思,也许你可以详细解释一下,或者最好把它作为另一个问题发布。您是否执行了常见的web服务步骤,即首先从编辑器运行脚本以确保其已授权,然后保存版本并发布它?谢谢您的回复@Mogsdad!这是一条极其模糊的错误消息,我从未整理过它,但我放弃了这种方法,而是选择了一个来自“感谢帖子和回复”的助手库!
https://script.google.com/macros/s/AKfycbzVDFmOeaQc4mDZhWCnwf0CUnX64YNhhnKIlTYhqtpBraINUf9e/exec?col1='Value for column 1'&col2='Another value'
function doGet(e) {
Logger.log( JSON.stringify(e) ); // view parameters
var result = 'Ok'; // assume success
if (e.parameter == undefined) {
result = 'No Parameters';
}
else {
var id = '--spreadsheet-id--'; // Spreadsheet id
var sheet = SpreadsheetApp.openById(id).getActiveSheet();
var newRow = sheet.getLastRow() + 1;
var rowData = [];
for (var param in e.parameter) {
Logger.log('In for loop, param='+param);
var value = stripQuotes(e.parameter[param]);
//Logger.log(param + ':' + e.parameter[param]);
switch (param) {
case 'col1':
rowData[0] = value;
break;
case 'col2':
rowData[1] = value;
break;
default:
result = "unsupported parameter";
}
}
Logger.log(JSON.stringify(rowData));
// Write new row to spreadsheet
var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
newRange.setValues([rowData]);
}
// Return result of operation
return ContentService.createTextOutput(result);
}
/**
* Remove leading and trailing single or double quotes
*/
function stripQuotes( value ) {
return value.replace(/^["']|['"]$/g, "");
}