标签: google-spreadsheet-api

为什么在openByUrl(formURL)调用中出现'Invalid argument:url'错误?

我在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)

javascript forms google-apps-script google-spreadsheet-api

6
推荐指数
1
解决办法
3623
查看次数

通过Google电子表格自定义函数调用Ajax

嘿伙计们,你们中的任何人都试过在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

6
推荐指数
1
解决办法
7334
查看次数

如何为Google电子表格中的嵌入式图表设置选项

首先,我找不到如何设置嵌入式图表的尺寸。

解决方案是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)

google-apps-script google-spreadsheet-api

6
推荐指数
1
解决办法
3304
查看次数

如何使用ServiceAccountCredential认证的SpreadsheetsService?

我需要使用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

6
推荐指数
1
解决办法
2479
查看次数

创建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)

google-sheets node.js google-spreadsheet-api

6
推荐指数
1
解决办法
2191
查看次数

在 Apps Script 中将单张纸导出为 PDF

我在电子表格中有很多工作表。我有 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)

pdf google-sheets google-apps-script google-spreadsheet-api

6
推荐指数
2
解决办法
9060
查看次数

如何使用google api创建电子表格并使用PHP设置适当的权限?

我有这个

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)

我需要一个创建新电子表格并为其设置适当权限的示例,以便我可以从我的帐户等修改此电子表格.

非常感谢!

php google-spreadsheet-api

6
推荐指数
1
解决办法
1149
查看次数

检查表是否存在于电子表格 Google 电子表格 API PHP 中

如何检查工作表是否存在于电子表格中(按名称检查工作表)或不使用 Google Sheet API。我用过Google Sheet API v4

如果工作表不存在,则创建一个新工作表。

谢谢

php google-api google-spreadsheet-api

6
推荐指数
1
解决办法
5381
查看次数

无需 Oauth 令牌即可访问 Google 电子表格 API

我已经阅读了谷歌电子表格文档https://developers.google.com/sheets/api/guides/authorizing并且它说,如果文档是公开的,你不需要 Oauth 2.0 并且 API 密钥就足够了。我正在尝试使用 hurl 和 api 密钥作为 parameter.it 进行测试请求,但它仍然给我错误,我需要使用 Oauth,有什么想法吗?

发布https://sheets.googleapis.com/v4/spreadsheets/16woR-nfy6KYBbkQpC2YOT1GzIean8rTzjueUnlzLMiE/values/Sheet1!A1:E1:append?valueInputOption=USER_ENTERED

回复: "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

6
推荐指数
2
解决办法
4633
查看次数

在没有客户端登录的情况下使用 google sheet api

我有一个从 Google 电子表格中获取数据的网站。我希望我的用户无需登录即可查看获取的数据。这可能吗?如何实现?

为了获取和更新工作表数据,我只需要一个帐户,最好在服务器端登录。但是,我还没有看到任何不需要客户端登录的服务器端日志记录。

google-sheets google-spreadsheet-api

6
推荐指数
1
解决办法
7260
查看次数