对于使用Python从Google文档下载电子表格感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解pythongooglesheet,并且为您提供关于GoogleCSV解析Google电子表
对于使用Python从Google文档下载电子表格感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解python google sheet,并且为您提供关于Google CSV解析Google电子表格并获取单元格颜色?、Google 电子表格 - 负数到零、Google文档电子表格转换为JSON、Google表格应用脚本可从Google表格内部生成自定义电子邮件的宝贵知识。
本文目录一览:- 使用Python从Google文档下载电子表格(python google sheet)
- Google CSV解析Google电子表格并获取单元格颜色?
- Google 电子表格 - 负数到零
- Google文档电子表格转换为JSON
- Google表格应用脚本可从Google表格内部生成自定义电子邮件
使用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 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 电子表格 - 负数到零
{
"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 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/worksheet
URL 的部分正确,key
但错误feed
和worksheet
。
在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表格内部生成自定义电子邮件
问题是战略性的。如果必须在发送之前控制最终消息的版本,请使用 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表格内部生成自定义电子邮件等相关内容,可以在本站寻找。
本文标签: