我在Google Apps电子表格中创建了一个表单,我试图在我的脚本中找到一些表单参数数据.
在下面的代码中,我不明白为什么我在"var myForm = FormApp.openByUrl(formURL);"行中收到"无效参数"错误.即使日志显示我认为是有效的formURL字符串.
function myFunction() {
var ss = SpreadsheetApp.getActive();
var formURL = ss.getGetFormURL();
Logger.log('Spreadsheet\'s formURL: %s', formURL);
var myForm = FormApp.openByUrl(formURL); // Google script shows the ERROR here
Logger.log('Form PublishedURL: %s', myForm.getPublishedUrl());
}
Run Code Online (Sandbox Code Playgroud) 嘿伙计们,你们中的任何人都试过在Google电子表格中写一个脚本来对网站进行ajax调用.我想这样做,以便电子表格从网站更新自己.但是在刚刚放入这么短的代码块之后,我就会抛出一个错误:"ReferenceError:"XMLHttpRequest"没有被定义." 有帮助吗?我必须打电话给某个图书馆吗?
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET", eventObject[1], true);
xmlhttp.send();
Run Code Online (Sandbox Code Playgroud) javascript ajax google-sheets google-apps-script google-spreadsheet-api
首先,我找不到如何设置嵌入式图表的尺寸。
解决方案是setOption('width',width)+ setOption('height',height)
现在,我想在创建图表时设置垂直轴的最小值和最大值。
谷歌的文档只是说...
setOption(名称,值)
设置此图表的高级选项。有关可用的选项,请参见https://developers.google.com/chart/interactive/docs/reference。
...但是我在那里找不到可用选项的名称。
即我在EmbeddedChartBuilder中缺少方法setDimension(pixwidth,pixheight)...
function addChart(dataSheetName) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Graphs');
var dataSheet = SpreadsheetApp.getActive().getSheetByName(dataSheetName);
var dataRange = dataSheet.getDataRange();
var chart = sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(dataRange)
.setPosition(5, 1, 0, 0)
// .setDimension(800, 400) // This method does not exist!
.build();
sheet.insertChart(chart);
}
Run Code Online (Sandbox Code Playgroud) 我需要使用SpreadsheetsService,但我没有在官方文档中找到方法.net.
https://developers.google.com/google-apps/spreadsheets/?hl=ja#authorizing_requests
我的服务已通过身份验证:
String serviceAccountEmail = "serviceAccount@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@"privatekey.p12", "pass", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { DriveService.Scope.Drive }
}.FromCertificate(certificate));
Run Code Online (Sandbox Code Playgroud)
从这里我可以实例化几乎任何服务.
例如Drive Service:
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Drive API Sample",
});
Run Code Online (Sandbox Code Playgroud)
但是SpreadsheetsService我可以这样做,因为SpreadsheetsService在他的默认构造函数或其属性中的GOAuth2RequestFactory中等待字符串'application name' RequestFactory.
如何使用ServiceAccountCredential对SpreadsheetsService进行身份验证?
.net google-api google-authentication google-sheets google-spreadsheet-api
这是我的代码:
var sheets = google.sheets('v4');
sheets.spreadsheets.values.update(
{
auth: auth,
spreadsheetId: '1tsyo5XFh1CzlF6Xd_q1ciUQY9KDo_rWYGdrwlANBduc',
range: 'Sheet1!A1:D5',
values: [
["Item", "Cost", "Stocked", "Ship Date"],
["Wheel", "$20.50", "4", "3/1/2016"],
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "30/20/2016"],
["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
],
},
function (err, response) {
if (err) {
console.log(err);
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
}
console.log(response);
});
Run Code Online (Sandbox Code Playgroud)
我是通过Google Doc的例子来做这件事的
但是我收到了错误:
{[错误:收到无效的JSON有效负载.未知名称"值":无法绑定查询参数.在请求消息中找不到字段'值'.]代码:400,错误:
[ { message: 'Invalid JSON payload received. Unknown name "values": Cannot bind query parameter. Field \'values\' could not be found …Run Code Online (Sandbox Code Playgroud) 我在电子表格中有很多工作表。我有 2 张我想每次都导出。Sheet One 是包含信息的表单。第二张纸是我需要给客户的一张纸,它从第一张纸中获得了参考。
目前,我创建了一个新的临时电子表格,将工作表一复制到新电子表格,然后将工作表二复制到临时电子表格。之后,我将临时电子表格转换为 pdf。然后我删除临时电子表格并将 pdf 保存到 Google Drive 的一个文件夹中。
创建的 PDF 包含两张纸的 2 页。我只需要第二张。如果我只传输第二张纸,由于没有第一张纸,这张纸会留下许多 #REF 错误。有没有办法只导出第二张表而不会出现 #REF 错误?
这是我的代码如下:
//create a temporary spreadsheet, copy both files onto it
var newSpreadsheet = SpreadsheetApp.create(nameOfSheet);
var d = ss.getSheetByName('Data').copyTo(newSpreadsheet); //the sheet with all the information
d.setName('Data');
sheetToCopy.copyTo(newSpreadsheet); //the sheet that uses references from the data sheet
newSpreadsheet.deleteSheet(newSpreadsheet.getSheetByName("Sheet1")); //delete the original sheet of the new spreadsheet
var blobOfNewSpreadsheet = newSpreadsheet.getBlob(); //create pdf
folder.createFile(blobOfNewSpreadsheet); //add to folder
//delete the temporary spreadsheet2
var …Run Code Online (Sandbox Code Playgroud) 我有这个
define('CLIENT_SECRET_PATH', __DIR__ . '/config_api.json');
define('ACCESS_TOKEN', '0b502651********c52b3');
Run Code Online (Sandbox Code Playgroud)
我可以使用它创建一个电子表格并获取id和url.
$requestBody = new Google_Service_Sheets_Spreadsheet();
$response = $service->spreadsheets->create($requestBody);
print_r($response);
$new_spr_id = $response['spreadsheetId'];
Run Code Online (Sandbox Code Playgroud)
但是这个电子表格没有出现在谷歌表单列表中,因为它是" 受保护的 "或其他东西.我试图用这个设置权限,但得到一个错误:致命错误:调用未定义的方法Google_Service_Drive_Permission :: setValue()
insertPermission($service, $new_spr_id, '**@gmail.com' , 'user', 'owner');
function insertPermission($service, $fileId, $value, $type, $role) {
$newPermission = new Google_Service_Drive_Permission();
$newPermission->setValue($value);
$newPermission->setType($type);
$newPermission->setRole($role);
try {
return $service->permissions->insert($fileId, $newPermission);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
我需要一个创建新电子表格并为其设置适当权限的示例,以便我可以从我的帐户等修改此电子表格.
非常感谢!
如何检查工作表是否存在于电子表格中(按名称检查工作表)或不使用 Google Sheet API。我用过Google Sheet API v4。
如果工作表不存在,则创建一个新工作表。
谢谢
我已经阅读了谷歌电子表格文档https://developers.google.com/sheets/api/guides/authorizing并且它说,如果文档是公开的,你不需要 Oauth 2.0 并且 API 密钥就足够了。我正在尝试使用 hurl 和 api 密钥作为 parameter.it 进行测试请求,但它仍然给我错误,我需要使用 Oauth,有什么想法吗?
回复:
"error": {"code": 401,"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.","status": "UNAUTHENTICATED"}
google-authentication google-sheets google-spreadsheet-api google-developers-console
我有一个从 Google 电子表格中获取数据的网站。我希望我的用户无需登录即可查看获取的数据。这可能吗?如何实现?
为了获取和更新工作表数据,我只需要一个帐户,最好在服务器端登录。但是,我还没有看到任何不需要客户端登录的服务器端日志记录。