在 Google 文档中插入和删除 Table 中的文本
Insert and remove text in Table within Google Docs
我有一个 Google 包含 3x4 Table 的文档。我需要从函数中删除和添加那些 table 单元格中的文本。
我可以使用此代码索引所有 table 单元格值:
var searchElement = copyBody.findElement(DocumentApp.ElementType.TABLE);
var element = searchElement.getElement();
var table = element.asTable();
var tablerows = element.getNumRows();
for ( var row = 0; row < tablerows; ++row ) {
var tablerow = element.getRow(row)
for ( var cell=0; cell < tablerow.getNumCells(); ++cell) {
var celltext = tablerow.getChild(cell).getText();
Logger.log( "Text is ("+celltext+")" );
logg 输出如下:
[16-01-19 01:23:31:663 PST] Text is (A)
[16-01-19 01:23:31:665 PST] Text is (C)
[16-01-19 01:23:31:666 PST] Text is (E)
[16-01-19 01:23:31:667 PST] Text is (X)
[16-01-19 01:23:31:669 PST] Text is (Row 2, Cell 1)
[16-01-19 01:23:31:670 PST] Text is (Row 2, Cell 2)
[16-01-19 01:23:31:672 PST] Text is (Row 2, Cell 3)
[16-01-19 01:23:31:673 PST] Text is (Row 2, Cell 4)
[16-01-19 01:23:31:675 PST] Text is (Row 3, Cell 1)
[16-01-19 01:23:31:677 PST] Text is (Row 3, Cell 2)
[16-01-19 01:23:31:678 PST] Text is (Row 3, Cell 3)
[16-01-19 01:23:31:679 PST] Text is (Row 3, Cell 4)
我之前用它来插入文本(自由格式,不在 table 个单元格中):
function insertText() {
var body = DocumentApp.getActiveDocument().getBody();
var val = body.findText('Hello! R3C3');
if(val == null)
{
var text = body.editAsText();
text.insertText(9, 'Hello! R3C3');
}
else
{
body.replaceText('Hello! R3C3','');
}
}
问题: 如何查找和替换文本,例如 第 2 行,单元格 1 为 'Hello! R3C3' ?
以下是我在 Google 文档中将文本插入特定 table-cell 的方法:
首先'find'文档中的table:
var copyDoc = DocumentApp.openById(copyId);
var copyBody = copyDoc.getActiveSection();
var searchElement = copyBody.findElement(DocumentApp.ElementType.TABLE);
var element = searchElement.getElement();
var table = element.asTable();
var tablerows = element.getNumRows();
并在 insert/remove 文本中使用以下内容:
//Row3Cell3
var Row3Cell3 = table.getRow(2).getCell(2).getChild(0).getText();
if(Row3Cell3 != 'Hello! R3C3')
{
var Row3Cell3_1 = table.getRow(2).getCell(2).getChild(0);
Row3Cell3_1.setText('Hello! R3C3');
}
else
{
copyBody.replaceText('Hello! R3C3','');
}
所以我希望这对寻找类似解决方案的其他人有所帮助。
添加到约翰,如果你已经有了你需要的table,你可以通过以下方式编辑单元格文本:
table.getRow(rowIdx).getChild(colIdx).asText().setText('Your text here');
因此,在您的示例中(第 2 行,第 1 单元格):
table.getRow(1).getChild(0).asText().setText('Hello R3C3!');
参考:
https://developers.google.com/apps-script/reference/document/table(getRow 和 getChild)
我有一个 Google 包含 3x4 Table 的文档。我需要从函数中删除和添加那些 table 单元格中的文本。
我可以使用此代码索引所有 table 单元格值:
var searchElement = copyBody.findElement(DocumentApp.ElementType.TABLE);
var element = searchElement.getElement();
var table = element.asTable();
var tablerows = element.getNumRows();
for ( var row = 0; row < tablerows; ++row ) {
var tablerow = element.getRow(row)
for ( var cell=0; cell < tablerow.getNumCells(); ++cell) {
var celltext = tablerow.getChild(cell).getText();
Logger.log( "Text is ("+celltext+")" );
logg 输出如下:
[16-01-19 01:23:31:663 PST] Text is (A)
[16-01-19 01:23:31:665 PST] Text is (C)
[16-01-19 01:23:31:666 PST] Text is (E)
[16-01-19 01:23:31:667 PST] Text is (X)
[16-01-19 01:23:31:669 PST] Text is (Row 2, Cell 1)
[16-01-19 01:23:31:670 PST] Text is (Row 2, Cell 2)
[16-01-19 01:23:31:672 PST] Text is (Row 2, Cell 3)
[16-01-19 01:23:31:673 PST] Text is (Row 2, Cell 4)
[16-01-19 01:23:31:675 PST] Text is (Row 3, Cell 1)
[16-01-19 01:23:31:677 PST] Text is (Row 3, Cell 2)
[16-01-19 01:23:31:678 PST] Text is (Row 3, Cell 3)
[16-01-19 01:23:31:679 PST] Text is (Row 3, Cell 4)
我之前用它来插入文本(自由格式,不在 table 个单元格中):
function insertText() {
var body = DocumentApp.getActiveDocument().getBody();
var val = body.findText('Hello! R3C3');
if(val == null)
{
var text = body.editAsText();
text.insertText(9, 'Hello! R3C3');
}
else
{
body.replaceText('Hello! R3C3','');
}
}
问题: 如何查找和替换文本,例如 第 2 行,单元格 1 为 'Hello! R3C3' ?
以下是我在 Google 文档中将文本插入特定 table-cell 的方法:
首先'find'文档中的table:
var copyDoc = DocumentApp.openById(copyId);
var copyBody = copyDoc.getActiveSection();
var searchElement = copyBody.findElement(DocumentApp.ElementType.TABLE);
var element = searchElement.getElement();
var table = element.asTable();
var tablerows = element.getNumRows();
并在 insert/remove 文本中使用以下内容:
//Row3Cell3
var Row3Cell3 = table.getRow(2).getCell(2).getChild(0).getText();
if(Row3Cell3 != 'Hello! R3C3')
{
var Row3Cell3_1 = table.getRow(2).getCell(2).getChild(0);
Row3Cell3_1.setText('Hello! R3C3');
}
else
{
copyBody.replaceText('Hello! R3C3','');
}
所以我希望这对寻找类似解决方案的其他人有所帮助。
添加到约翰,如果你已经有了你需要的table,你可以通过以下方式编辑单元格文本:
table.getRow(rowIdx).getChild(colIdx).asText().setText('Your text here');
因此,在您的示例中(第 2 行,第 1 单元格):
table.getRow(1).getChild(0).asText().setText('Hello R3C3!');
参考: https://developers.google.com/apps-script/reference/document/table(getRow 和 getChild)