GVKun编程网logo

使用Python从Google文档下载电子表格(python google sheet)

30

对于使用Python从Google文档下载电子表格感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解pythongooglesheet,并且为您提供关于GoogleCSV解析Google电子表

对于使用Python从Google文档下载电子表格感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解python google sheet,并且为您提供关于Google CSV解析Google电子表格并获取单元格颜色?、Google 电子表格 - 负数到零、Google文档电子表格转换为JSON、Google表格应用脚本可从Google表格内部生成自定义电子邮件的宝贵知识。

本文目录一览:

使用Python从Google文档下载电子表格(python google sheet)

使用Python从Google文档下载电子表格(python google sheet)

给定键和工作表ID(gid),您能否生成一个Python示例,说明如何下载Google Docs电子表格?我不能

我已经搜索过API的版本1,版本2和版本3。我没有运气,我无法弄清楚他们编译过的类似ATOM的供稿API,gdata.docs.service.DocsService._DownloadFile私有方法说我未经授权,而且我不想自己编写整个Google
Login身份验证系统。由于挫败感,我要面对自己。

我有一些电子表格,我想这样访问它们:

username = ''mygooglelogin@gmail.com''password = getpass.getpass()def get_spreadsheet(key, gid=0):    ... (help!) ...for row in get_spreadsheet(''5a3c7f7dcee4b4f''):    cell1, cell2, cell3 = row    ...

请保存我的脸。


更新1: 我已经尝试了以下方法,但是没有任何组合Download()Export()似乎奏效。(DocsService
此处的文档)

import gdata.docs.serviceimport getpassimport osimport tempfileimport csvdef get_csv(file_path):  return csv.reader(file(file_path).readlines())def get_spreadsheet(key, gid=0):  gd_client = gdata.docs.service.DocsService()  gd_client.email = ''xxxxxxxxx@gmail.com''  gd_client.password = getpass.getpass()  gd_client.ssl = False  gd_client.source = "My Fancy Spreadsheet Downloader"  gd_client.ProgrammaticLogin()  file_path = tempfile.mktemp(suffix=''.csv'')  uri = ''http://docs.google.com/feeds/documents/private/full/%s'' % key  try:    entry = gd_client.GetDocumentListEntry(uri)    # XXXX - The following dies with RequestError "Unauthorized"    gd_client.Download(entry, file_path)    return get_csv(file_path)  finally:    try:      os.remove(file_path)    except OSError:      pass

答案1

小编典典

如果有人遇到这种情况寻求快速解决方案,这是另一个(当前)不依赖gdata客户端库的解决方案:

#!/usr/bin/pythonimport re, urllib, urllib2class Spreadsheet(object):    def __init__(self, key):        super(Spreadsheet, self).__init__()        self.key = keyclass Client(object):    def __init__(self, email, password):        super(Client, self).__init__()        self.email = email        self.password = password    def _get_auth_token(self, email, password, source, service):        url = "https://www.google.com/accounts/ClientLogin"        params = {            "Email": email, "Passwd": password,            "service": service,            "accountType": "HOSTED_OR_GOOGLE",            "source": source        }        req = urllib2.Request(url, urllib.urlencode(params))        return re.findall(r"Auth=(.*)", urllib2.urlopen(req).read())[0]    def get_auth_token(self):        source = type(self).__name__        return self._get_auth_token(self.email, self.password, source, service="wise")    def download(self, spreadsheet, gid=0, format="csv"):        url_format = "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=%s&exportFormat=%s&gid=%i"        headers = {            "Authorization": "GoogleLogin auth=" + self.get_auth_token(),            "GData-Version": "3.0"        }        req = urllib2.Request(url_format % (spreadsheet.key, format, gid), headers=headers)        return urllib2.urlopen(req)if __name__ == "__main__":    import getpass    import csv    email = "" # (your email here)    password = getpass.getpass()    spreadsheet_id = "" # (spreadsheet id here)    # Create client and spreadsheet objects    gs = Client(email, password)    ss = Spreadsheet(spreadsheet_id)    # Request a file-like object containing the spreadsheet''s contents    csv_file = gs.download(ss)    # Parse as CSV and print the rows    for row in csv.reader(csv_file):        print ", ".join(row)

Google CSV解析Google电子表格并获取单元格颜色?

Google CSV解析Google电子表格并获取单元格颜色?

如何解决Google CSV解析Google电子表格并获取单元格颜色??

美好的一天。谁能帮助我?没有Google Api,如何在近乎PHP的解析中获取单元格颜色?

<?
$id = ''1_8xheFjRuwofge-6SmHdawe2A8OtbF1meEfu6Bp149U'';
$gid = ''532089414'';
$range = ''A2:A9999'';
 
$csv = file_get_contents(''https://docs.google.com/spreadsheets/d/'' . $id . ''/export?format=csv&gid='' . $gid . ''&range='' . $range);
$csv = explode("\r\n",$csv);
$array = array_map(''str_getcsv'',$csv);
 
print_r($array);
?>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Google 电子表格 - 负数到零

Google 电子表格 - 负数到零

{ "files": [ "main.d060b15792a80dc111ee.css","main.0f88c5f5cb783c5a385f.js","layout.pug" ],"css": { "filename": "main.d060b15792a80dc111ee.css","hash": "d060b15792a80dc111ee" },"js": { "filename": "main.0f88c5f5cb783c5a385f.js","hash": "0f88c5f5cb783c5a385f" } } 在这里工作正常。但是当你不能使用 MAX 时,使用 :

=max(0;C4*0,09)

,

使用这个:

=IF(K69*0,09<0; 0; K69*0,09)

Google文档电子表格转换为JSON

Google文档电子表格转换为JSON

我看过很多关于此的文章,但它们似乎已经过时,例如,没有一个Google Docs Spreadsheet网址具有关键参数。

然后,我阅读了此内容以访问数据
https://developers.google.com/gdata/samples/spreadsheet_sample

我的电子表格位于:https
:
//docs.google.com/spreadsheets/d/1SKI5773_68HiSve1fsz7fr4gotjFWHB7KBuVsOlLz6I/edit#gid=0

我尝试使用此代码,我认为键或语法有问题,请指导修复。

<script src="http://spreadsheets.google.com/feeds/feed/1SKI5773_68HiSve1fsz7fr4gotjFWHB7KBuVsOlLz6I/worksheet/public/basic?alt=json-in-script&callback=importGSS"></script><script type="text/javascript">    function importGSS(json) {        console.log(''finished'');    }</script>

答案1

小编典典

标记中的src属性script是无效的链接(您可以通过直接在浏览器中查看链接来自己查看)。

feed/key/worksheetURL 的部分正确,key但错误feedworksheet

在URL中,将“ feed” 替换为“ cells”(每个单元格的单独值)或“ list”(每行的单独值)。

同时,将“ worksheet” 替换为“ od6”(表示最左边或默认的工作表-
有关访问其他工作表的信息,请参阅此博客文章)。

如果直接在浏览器中查看此新URL,则可以看到它返回了有意义的值。

您的最终脚本标签可能如下所示:

<script src="https://spreadsheets.google.com/feeds/list/1SKI5773_68HiSve1fsz7fr4gotjFWHB7KBuVsOlLz6I/od6/public/values?alt=json-in-script&callback=importGSS"></script>

有关更多信息,您可以在Google
Developers网站上查看示例

Google表格应用脚本可从Google表格内部生成自定义电子邮件

Google表格应用脚本可从Google表格内部生成自定义电子邮件

问题是战略性的。如果必须在发送之前控制最终消息的版本,请使用 Gmail链接打开带有相应参数的“撰写窗口”,如here所述。请注意,在这种情况下,您不可能通过链接包含任何附件。您可以(并且应该)手动进行操作。

另一种方法是使用模板(在“草稿”文件夹中),该模板对于填写数据字段和附件也更加灵活。该脚本可以完全完成您的工作,但没有消息预览。 GmailDraft class为此提供了一个有用的 getMessage()方法,您可以在发送前调整详细信息。如果您使用电子表格,则可以调整脚本以在sidebar or dialog window中显示消息“预览”(类似于撰写窗口),并带有“发送”按钮以进行确认。

,

以防万一,除了亚历山大·埃莫林的战略解决方案。据我所知,您无法通过某些打印机以PDF格式打印文档。但是您可以使电子表格中的PDF变得非常容易。这是一个示例:

function myFunction() {

  var ID   = '';                                          // ID of your spreadsheet
  var copy = DriveApp.getFileById(ID).makeCopy();         // make a copy of the spreadsheet
  var ss   = SpreadsheetApp.openById(copy.getId())        // open the copy

  // convert all formulas into static values
  var range = ss.getActiveSheet().getDataRange();  // get data range
  var values = range.getDisplayValues();           // get all displayed values in the range
  range.setValues(values);                         // paste the values back
  
  while (ss.getSheets().length>1) ss.deleteSheet(ss.getSheets()[1]); // remove all sheets except the first one
  
  DriveApp.createFile(ss.getBlob().setName('sheet.pdf')); // make a PDF file
  copy.setTrashed(true);                                  // delete the copy

}

关于使用Python从Google文档下载电子表格python google sheet的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Google CSV解析Google电子表格并获取单元格颜色?、Google 电子表格 - 负数到零、Google文档电子表格转换为JSON、Google表格应用脚本可从Google表格内部生成自定义电子邮件等相关内容,可以在本站寻找。

本文标签: