Seth, thanks for following up on this. I agree that not being able to run EmbedCode results in google spreadsheets is a problem. I'll try to get the developers' plans for future development.
Just for fun, I set up some Javascript code to create a function in google spreadsheet. I know almost nothing about Javascript, so perhaps this could be done better. First, I create and deploy an APIFunction in Mathematica.
CloudDeploy[APIFunction["x"->"Number", #x^2 &], Permissions->"Public"]
Now I go to google spreadsheet tools/script editor and create a function to call this API. Note that I have copied and pasted the url from the deployed api and specified the variable's name ("x").
function myapi(x) {
var url = "http://www.wolframcloud.com/objects/ed9022d0-e195-4265-96c4-1d7b0d0f68b8";
var args = {"method" : "POST",
"payload" : {"x" : x}};
var response = UrlFetchApp.fetch(url,args).getContentText("UTF-8");
return response
}
Then in my spreadsheet, I just call the function in a cell with =myapi(-input-), where input can be a number or a cell reference.
Granted, this is a trivial case, since there is a single input variable and the output is just a string. But it does work! I expect that extending to multiple input variables or different types of output would not be too hard.