小编Tan*_*ike的帖子

Google pydrive 将文件上传到特定文件夹

我正在尝试将文件上传到我的 Google 驱动器,下面的代码有效。如何指定要上传到哪个文件夹,即驱动器---与我共享--csvFolder

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive


gauth = GoogleAuth()
gauth.LocalWebserverAuth()

drive = GoogleDrive(gauth)

file2 = drive.CreateFile()
file2.SetContentFile('new_test.csv')
file2.Upload()
Run Code Online (Sandbox Code Playgroud)

python google-api-client google-drive-api pydrive

12
推荐指数
1
解决办法
7104
查看次数

清除单元格谷歌工作表脚本

我在 googlesheet 上有一张工作表,其中有很多行和列。

我想清除 B 列中值为 0 的单元格。

我写了这段代码,但它不起作用,我不是 javascript 专家:|

function clean0() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getDisplayValues();
  if(data == "0"){
    sheet.getRange('B:B').clearContent();
  }
}
Run Code Online (Sandbox Code Playgroud)

我的错误在哪里?

感谢帮助 :)

javascript google-sheets google-apps-script

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

如何使用 google API for python 在特定文件夹下创建工作表?

我可以在“我的驱动器”的根目录中使用以下代码创建工作表,但如何在“我的驱动器”或“共享驱动器”中的文件夹下创建工作表?

from googleapiclient.discovery import build

service = build(‘sheets’, ‘v4’, credentials=creds)
sheet = service.spreadsheets()
body = {}
results = sheet.create(body=body).execute()
pprint(results)
Run Code Online (Sandbox Code Playgroud)

python google-sheets google-drive-api google-api-python-client google-sheets-api

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

Google Sheet 使用 Importxml 错误无法获取 url

我想获取此网站上的价格数据(https://tarkov-market.com/item/Pack_of_sugar

但这不起作用

=IMPORTXML("https://tarkov-market.com/item/Pack_of_sugar","//*[@id='__layout']/div/div[1]/div/div[4]/div[1]/div[2]/div[1]/div[2]")
Run Code Online (Sandbox Code Playgroud)

xpath google-sheets web-scraping google-apps-script google-sheets-formula

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

使用 API 将基于坐标的日出/日落导入 Google Sheet

我花了大约 5 个小时试图解决这个问题,但我陷入了最后一点。

到目前为止,我已经能够调用https://sunrise-sunset.org/api返回我需要的所有数据。我遇到的问题是能够解析结果,以便将日出或日落值附加到一个变量中,我可以将其作为结果导出到谷歌表中。

理想情况下,在谷歌表格中,我能够像其他这样的函数一样使用自定义函数

A1=SunRiseSet(lat,long,date,type)  
Run Code Online (Sandbox Code Playgroud)

=“下午 5:11:12”

我想使用 type 来指定函数应返回什么值(日出或日落)。

这是我到目前为止的代码

function SunRiseSet(lat,long,date,type) {
 var response = UrlFetchApp.fetch("https://api.sunrise-sunset.org/json?lat="+lat+"&lng="+long+"&date="+date);  
  var json = response.getContentText();
  Logger.log(json);

  var data = JSON.stringify(json);
  Logger.log(data);
  var data = json;

  var sunrise = data.sunrise;

  var sunset = data.results.sunset

 type=1; 
  if(type==1){
   return this.sunrise}
  else{
   return this.sunset};
}
Run Code Online (Sandbox Code Playgroud)

我确信这真的很容易,但到目前为止我尝试过的一切都失败了。太感谢了!

javascript json google-sheets google-apps-script

5
推荐指数
1
解决办法
3854
查看次数

将 .XLSX 转换为 Google Sheet 并移动转换后的文件的脚本

我知道可以使用脚本和驱动 API 将 Excel 文件转换为 Google Sheets,但我正在寻找脚本来转换 Excel 工作表并将转换后的文件移动到其他文件夹。

所以需要的步骤如下:

  1. 将 Excel (.xls/.xlsx) 从文件夹 A 转换为 Google 表格。
  2. 将转换后的文件从 FoldarA 移动到 FolderB。
  3. 从FolderA中删除原始Excel文件
  4. 希望步骤 3 可以避免这种情况,但要避免复制已转换的文件。

Excel 文件正在粘贴到正在同步到 Google Drive 的本地文件夹中,并且文件不大于 3mb。当前脚本如下。这是转换文件,但将它们放置在根文件夹中,并且当脚本再次运行时将重复转换。

 function importXLS(){
  var files = DriveApp.getFolderById('1hjvNIPgKhp2ZKIC7K2kxvJjfIeEYw4BP').searchFiles('title != "nothing"');
  while(files.hasNext()){
    var xFile = files.next();
    var name = xFile.getName();
    if (name.indexOf('.xlsx')>-1){ 
      var ID = xFile.getId();
      var xBlob = xFile.getBlob();
      var newFile = { title : name+'_converted',
                     key : ID
                    }
      file = Drive.Files.insert(newFile, xBlob, {
        convert: true
      });
    }
  } …
Run Code Online (Sandbox Code Playgroud)

file-conversion google-sheets delete-file google-apps-script google-drive-api

5
推荐指数
1
解决办法
2万
查看次数

将 pandas 数据框上传到谷歌电子表格

我按照此处此处的步骤操作,但无法将 pandas 数据框上传到谷歌表格。

首先我尝试了以下代码:

import gspread
from google.oauth2.service_account import Credentials

scope = ['https://spreadsheets.google.com/feeds',
         'https://www.googleapis.com/auth/drive']

credentials = Credentials.from_service_account_file('my_json_file_name.json', scopes=scope)

gc = gspread.authorize(credentials)

spreadsheet_key = '1FNMkcPz3aLCaWIbrC51lgJyuDFhe2KEixTX1lsdUjOY'
wks_name = 'Sheet1'
d2g.upload(df_qrt, spreadsheet_key, wks_name, credentials=credentials, row_names=True)
Run Code Online (Sandbox Code Playgroud)

上面的代码返回这样的错误消息:AttributeError: module 'df2gspread' has no attribute 'upload'这是没有意义的,因为 df2spread 确实有一个名为 upload 的函数。

其次,我尝试将数据附加到我通过输入列名称在谷歌工作表上人为创建的数据框中。这也不起作用,也没有提供任何结果。

import gspread_dataframe as gd

ws = gc.open("name_of_file").worksheet("Sheet1")
existing = gd.get_as_dataframe(ws)
updated = existing.append(df_qrt)
gd.set_with_dataframe(ws, updated)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢!

python google-sheets pandas gspread google-sheets-api

5
推荐指数
1
解决办法
9529
查看次数

使用 Google API 文档获取/读取其数据时出现错误 401

我使用此链接来读取/获取 Google 文档文档的数据。

注意:出于安全原因,我更改了文档 ID 和 API 密钥。

我使用的网址

https://docs.googleapis.com/v1/documents/1oGPxB3BFf9XSAfe23lqY7OzYkn9_xvXaOQCGjBZEHmS4RSr21Y?key=AIzaSyDk5yXM8zFfg7KIgercswedLYD1bZO6zBue2tO0fk
Run Code Online (Sandbox Code Playgroud)

我得到的错误

{
  "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"
  }
}
Run Code Online (Sandbox Code Playgroud)

google-api google-docs-api

5
推荐指数
1
解决办法
2万
查看次数

Google Sheet API 值批量更新,正文中范围数量的限制

https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/batchUpdate

这里的文档没有说明一次调用可以一次更新主体中的多少个范围。有人测试过极限吗?

现在我的代码可以一次更新不多的单元格。我想看看是否应该更改代码以立即完成所有操作。但如果有限制的话我不想花时间重写代码。

它可以处理 1000 个不同的范围吗?我的范围之间不连续。

google-apps-script google-sheets-api

5
推荐指数
1
解决办法
2469
查看次数

从 Google 电子表格单元格解析 Json

在谷歌电子表格单元格中我有这样的文本:

\n\n

{"age_max":65,"age_min":18,"flexible_spec":[{"interests":[{"id":"6002867432822","name":"Beauty"},{"id":"6002991733794","name":"Beauty & Care"},{"id":"6003177110133","name":"Natural Beauty"},{"id":"6003211042524","name":"Health and Beauty Care"},{"id":"6003393295343","name":"Health And Beauty"},{"id":"6003460329503","name":"Beautiful Skin"},{"id":"6004111438209","name":"Facial care"}]}],"genders":[2],"geo_locations":{"countries":["SK"],"location_types":["home","recent"]},"locales":[2,33],"targeting_optimization":"none","publisher_platforms":["facebook"],"facebook_positions":["feed","right_hand_column","instant_article"],"device_platforms":["mobile","desktop"]};

\n\n

它的 JSON 来自 Facebook API,从 Supermetrics 获取。

\n\n

现在我想解析这个单元格,但是这个代码不起作用:-/

\n\n

我在电子表格“=parseTargeting(A1)”中使用此函数

\n\n

以及脚本编辑器中的此自定义函数。

\n\n
 function parseTargeting(jsonData) {\n\n\n\n\n    var flexible_spec = jsonData["flexible_spec"];\n    var maxAge = jsonData["age_max"];\n    var minAge = jsonData["age_min"];\n\n    var interestsBasics = jsonData["flexible_spec"][0]["interests"][0]["name"];\n\n\n    var interestsBasicsCelkem = jsonData["flexible_spec"][0]["interests"].length-1;\n    var interests = "";\n    var output = [];\n\n    for(var i = 0; i<=interestsBasicsCelkem; i++){\n\n      interests += jsonData["flexible_spec"][0]["interests"][i]["name"]+ "\\n";  \n\n\n    }\n\n    var returnVek = "Vek:"+minAge + " - " + …
Run Code Online (Sandbox Code Playgroud)

javascript json google-sheets google-apps-script

4
推荐指数
1
解决办法
5万
查看次数