在excel中,您可以使用pyxll
使用python创建用户定义的函数。我一直在转向Google电子表格并使用他们的Google应用程序脚本,但是这些库在python中更大更好,我希望有一种方法可以使用Google电子表格中的python构建用户定义的函数。有一些方法可以将python与像gspread
这样的Google表格进行交互。有没有办法在谷歌应用程序引擎上运行python然后获取表格来触发该代码?还有哪些方法可以从Google电子表格中触发python代码?
答案 0 :(得分:2)
您应该在GAE中创建一个Web服务,然后可以使用Google Apps Script UrlFetch
类调用该服务。
这就是我通常将第三方应用程序与Apps Script App集成的方式。
在电子表格容器脚本中,您可以创建类似
的代码function myFunction(){
//your code
//Call the webservice
var response = UrlFetchApp.fetch('my_webservice_url', {payload:'...', method:'POST'});
Logger.log(response.getContentText());
// your code based on response
}
以上代码可以根据某些条件由Apps脚本中的时间驱动触发器触发
答案 1 :(得分:1)
一种方法是让一些代码一直读取电子表格,然后在满足条件时运行其他代码。
如果没有GAE,您可以使用以下代码:
#http://code.google.com/p/gdata-python-client/downloads/list
import gdata.spreadsheet.service as s
spreadsheet_key = 'spreadsheetkey'# https://docs.google.com/spreadsheet/ccc?key=<spreadsheet key>&usp=sharing#gid=0
worksheet_key = 'od6' #first tab
gd_client = s.SpreadsheetsService(spreadsheet_key, worksheet_key)
gd_client.email = 'user@gmail.com'
gd_client.password = 'password'
gd_client.ProgrammaticLogin()
list_feed = gd_client.GetListFeed(spreadsheet_key, worksheet_key)
for entry in list_feed.entry:
#read cell values and then do something if the condition is met
如果您想让电子表格在GAE应用中运行代码,那么您可以发布电子表格并构建电子表格的网址(JSON),如下所示:https://spreadsheets.google.com/feeds/list/(spreadsheetkey)/od6/public/values?alt=json 可以通过app访问此地址,可以读取单元格值,并可以触发某些代码。
这两种方法的方法是相同的:一些代码监视电子表格,当满足某些条件时,会触发其他一些代码。当条件纯粹来自Google电子表格时,我不确定如何运行代码(在GAE应用程序中)。
答案 2 :(得分:1)
将您的python代码部署为云功能: NumericUpDown。
然后使用如上所示的URL Fetch调用函数。