似乎没有(据我所知)编辑Google文档的API(不是电子表格,它们基于HTML的文档).有没有人做过类似的事情?也许通过下载HTML版本,编辑和上传更改?
google-api google-docs google-docs-api google-apps-script google-api-client
我正在编写一个脚本,用于创建Google Apps电子表格内容的固定宽度文本输出.我使用该range.getValues()方法检索当前范围的所有值,然后我循环遍历所有内容并生成一个文本块,当粘贴到固定宽度字体的电子邮件中时,它看起来像一个格式良好的表.
我遇到的唯一问题是我无法复制数字格式.我可以使用数字格式化字符串range.getNumberFormats(),但我找不到在代码中应用该格式化字符串的方法.我尝试使用TEXT(值,格式)电子表格功能,但显然Google Apps脚本还不支持从JavaScript代码本身调用电子表格函数(请参阅此问题以获取证明).
javascript google-sheets number-formatting google-apps-script
我试图弄清楚如何在谷歌电子表格上使用条件格式,类似于你可以通过公式在excel中做的事情.
如果单元格O2的值为"X",我希望单元格A2变为绿色,这将在两个列上完成.我知道这需要一个脚本.
我跑过一个类似的链接,但我不知道如何调整它以满足我的需求.这是可以做到的吗?
链接:https: //webapps.stackexchange.com/questions/16745/google-spreadsheets-conditional-formatting
我有一些编写基于容器的应用程序脚本的经验,但对于Web应用程序来说却是全新的.
如何调试(例如查看变量值,逐步执行代码等)Web应用程序?在容器绑定脚本中它很容易,因为我可以设置断点,使用应用程序脚本调试器 - 如何在网页中进行此操作,例如当我执行doPost时?
我正在学习用于Google Spreadsheets的Google Apps脚本.
我在一列中有一个URL列表,我想编写一个脚本来从每个URL获取title元素并将其写入相邻的单元格.我按照以下脚本为一个特定单元格完成了此操作:
function getTitles() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("url_list");
var range = sheet.getRange("G3");
var url = range.getValue();
var response = UrlFetchApp.fetch(url);
var doc = Xml.parse(response.getContentText(),true);
var title = doc.html.head.title.getText();
var output = sheet.getRange("H3").setValue(title);
Logger.log(title);
return title;
}
Run Code Online (Sandbox Code Playgroud)
这将获取G3中的URL,解析它,拉取元素并将输出写入H3.
现在我有了这个基本的构建块,我想循环整个G列并将输出写入相邻的单元格但是我被卡住了.谁能指出我正确的方向?
我一直试图在谷歌应用程序脚本(电子表格内)中获取一些函数来修改全局变量,但我似乎无法弄明白.
基本上我想声明一个变量(在本例中为"globalTestVar"),并且每当两个函数中的一个(globalVarTestFunctionOne和2)启动时,该变量应该递增1.
问题是每次按下按钮时都会再次声明变量,即使if(typeof(globalTestVar)=='undefined') - 语句应该处理它.
我习惯于Objective C和Java,我可以在开头声明我的变量,并在代码中的任何地方修改这些变量.
我很抱歉,如果这是一个基本问题,但我一直在谷歌搜索几个小时,我只是无法让它工作.
这是代码:
logstuff("outside");
function logstuff(logInput){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var lastRow = sheet.getLastRow() + 1;
sheet.getRange("A"+lastRow).setValue(logInput);
return;
}
if (typeof(globalTestVar) == 'undefined') {
logstuff('declaring global variable');
globalTestVar = 0;
} else {
logstuff('global variable has been declared');
}
function globalVarTestUIFunction() {
var app = UiApp.createApplication().setTitle('Test UI');
var doc = SpreadsheetApp.getActive();
var formPanel = app.createVerticalPanel();
var buttonF1 = app.createButton('F1');
var buttonbuttonF1ClickHandler = app.createServerClickHandler("globalVarTestFunctionOne");
buttonF1.addClickHandler(buttonbuttonF1ClickHandler);
buttonbuttonF1ClickHandler.addCallbackElement(formPanel);
var buttonF2 = app.createButton('F2');
var buttonbuttonF2ClickHandler = app.createServerClickHandler("globalVarTestFunctionTwo");
buttonF2.addClickHandler(buttonbuttonF2ClickHandler); …Run Code Online (Sandbox Code Playgroud) 我坚持做一些基本的事情.如何将参数传递给Google表格自定义函数.
我在Apps脚本代码编辑器中有一个函数定义为:
function usageByMonth(range,theDate) {
[ do something with the arguments passed ]
}
Run Code Online (Sandbox Code Playgroud)
在我的Google表格中,该功能用作
=usageByMonth('Source Meter Readings'!A5:A,B1)
Run Code Online (Sandbox Code Playgroud)
在尝试调试函数时,我发现这两个参数是"未定义的".我已经查看了很多帖子,甚至直接从示例中复制了函数,结果相同.
从电子表格和使用谷歌脚本,
我正在尝试使用'query'函数从具有条件(where)的特定工作表中选择一系列数据.但是我不希望使用新的选定数据范围重新生成另一个工作表.
接下来我想在同一个电子表格中构建/更新另一个工作表中的图表.
我没有办法做到这一点.
谢谢
我正在尝试通过Google Apps脚本中的SSL连接到数据库,引用这些文档.错误是:
Execution failed: Failed to establish a database connection. Check connection string, username and password.
Run Code Online (Sandbox Code Playgroud)
我可以从另一个数据库客户端(Sequel Pro)使用这些完全相同的参数,它工作正常.我有db接受来自任何IP地址的连接(0.0.0.0/0).
我相信我已经消除了所有其他变量(用户名,密码等等),只有当我尝试在Apps脚本中使用SSL时才会失败.
任何人都可以提供在Google Apps脚本中使用SSL连接MySQL数据库的工作示例吗?
我的应用脚本:
function connectDb() {
var address = 'x.x.x.x'; // no, I'm not literally using x's in my ip address
var instanceUrl = 'jdbc:mysql://' + address + ':3306/';
var clientSslKey = '-----BEGIN RSA PRIVATE KEY-----\n' +
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n' +
/* snip */
'-----END RSA PRIVATE KEY-----';
var clientSslCertificate = '-----BEGIN CERTIFICATE-----\n' +
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n' +
/* snip */ …Run Code Online (Sandbox Code Playgroud) arguments ×1
global ×1
google-api ×1
google-docs ×1
javascript ×1
jdbc ×1
loops ×1
ssl ×1
variables ×1