我一直在尝试将一个函数添加到一个附加组件中,该附加组件将在文档的末尾创建一个表。
按钮文本在HTML中定义为:
<button onclick="google.script.run.chronTable()">In Order</button>
.gs文件中的函数如下:
function chronTable() {
var body = DocumentApp().getActiveDocument().getBody();
var chronTable = body.appendTable();
//Create 5 rows and 4 columns
for(var i=0; i<3; i++){
var tr = chronTable.appendTableRow();
}
//add 4 cells in each row
for(var j=0; j<2; j++){
var td = tr.appendTableCell('Cell '+i+j);
}
}
最后,我想插入我在早期函数中定义的文本,该函数使用HTML中的按钮将属性应用于文本,并且我将其存储在数组中,如下所示:
function highlightStyleRed() {
//App>Doc>Body>Paragraph>Text
//selection>rangeElements>RangeElement>Element>Text
var selection = DocumentApp.getActiveDocument().getSelection();
if (selection) {
//declare variables once before loop
var elements = selection.getRangeElements();
var rngEelement;
var element;
var text;
var startOffset;
var endOffsetInclusive;
var redSelected = []; // creates array for export to appended table
//loop through selection
for (var i=0; i < elements.length; i++){
rngElement = elements[i];
element = rngElement.getElement();
if (element) {
text = element.asText();
if (text) {
//if we are on a 'partial element' we need to only grab the selected part of the text
if (rngElement.isPartial()) {
startOffset = rngElement.getStartOffset();
endOffsetInclusive = rngElement.getEndOffsetInclusive();
text.setBackgroundColor(startOffset, endOffsetInclusive, '#ff3333');
redSelected.push(text);//pushes text to array
} else {
text.setBackgroundColor('#ff3333');
redSelected.push(text);//pushes text to array
}
}
}
}
} }
到目前为止,我甚至无法让桌子显示出来。这段代码中是否缺少某些内容?
此外,当我尝试声明数组并将数组插入表格单元格时,无法识别它。我可以声明在不同函数中创建的数组吗?
答案 0 :(得分:0)
在你的第一个代码中,你必须将for循环放在另一个for循环中:
for(var i=0; i<3; i++){
var tr = chronTable.appendTableRow();
//add 4 cells in each row
for(var j=0; j<2; j++){
var td = tr.appendTableCell('Cell '+i+j);
}
}
使用上一代码,它创建了一个表,但在Doc。
中创建了一个错误对于你的问题的第二部分,我不确定你试图做什么。你能解释一下吗?或举个例子。