我有一个Google Apps脚本,可以从一些地方提取一些数据,然后将其组合成特定格式的Google Doc。部分格式是一个表格,其中一些样式因单元格而异。一切都工作正常,直到一些数据包括新行。我的脚本开始失败时收到了非常有用的消息“我们很抱歉,发生了服务器错误。请稍等一下再试一次。”
我已经完成并删除了我可以处理的所有无关代码,这就是我所拥有的:
function executeBugTest(){
var problemString = "1\n12";
var style = {};
style[DocumentApp.Attribute.FOREGROUND_COLOR] = "#000000";
var document = DocumentApp.getActiveDocument();
var body = document.getBody();
var table = body.appendTable();
var tableRow = table.appendTableRow();
tableRow.appendTableCell().setAttributes(style);
tableRow.appendTableCell(problemString);
// error on the next line
tableRow.appendTableCell();
};
以下是我发现导致错误所需的所有条件:
problemString
必须包含新行problemString
必须至少包含4个字符(计算新行)style
必须设置某些内容(似乎并不重要)不幸的是,这些都是要求:[。
以下是我尝试过的所有似乎都没有影响错误的内容:
关于这里发生了什么的任何想法?我将继续尝试并寻找构建此表的替代方法,但任何建议都将受到赞赏。
答案 0 :(得分:0)
我遇到了同样的问题。根据我自己的经验和演示,问题是由您的problemString中的'\n'
引起的。
我没有“干净”解决方案,但我确实有一个只需要额外一行的解决方法。
我在附加单元格时使用占位符文本,并使用replaceText()
函数插入问题字符串。我将使用您的代码块(减去样式更改)来演示解决方法。
function executeBugTest(){
var problemString = "1\n12";
var document = DocumentApp.getActiveDocument();
var body = document.getBody();
var table = body.appendTable();
var tableRow = table.appendTableRow();
var cell1 = tableRow.appendTableCell("PlaceholderText");
var cell2 = tableRow.appendTableCell("Other Text);
cell1.replaceText("PlaceholderText", problemString);
};
希望这适合你:)