[英]Adding to a Google Doc from a Google Spreadsheet Using Apps Script
[英]Number table rows in Google Doc using Apps Script
我正在研究一個腳本,該腳本接受文本並將每個段落放在編號的表格單元格中。 我遇到一個問題,腳本將每個換行符都計為一個段落,這意味着我的表要么具有空單元格,要么被編號錯誤。
這是工作腳本(減去行編號):
function formatArticle() {
var doc = DocumentApp.getActiveDocument()
var body = doc.getBody();
// Get the paragraphs
var paras = body.getParagraphs();
// Add a table to fill in with copied content
var addTable = body.appendTable();
for (var i=0;i<paras.length;++i) {
// If the paragraph is text, add a table row and insert the content.
if(i % 2 == 0) {
var tr = addTable.appendTableRow();
var text = paras[i].getText();
// Number the table rows as they're added in a cell to the left.
for(var j=0;j<2;j++) {
if(j == 0) {
var td = tr.appendTableCell(i);
} else {
var td = tr.appendTableCell(text);
}
}
}
// Shrink left column.
addTable.setColumnWidth(0, 65);
// Delete the original text from the document.
paras[i].removeFromParent();
}
}
這是一個演示Google文檔,因此您可以查看文本格式,而無需自己設置新格式(如果有幫助的話)。
試試這個: tr.appendTableCell(i/2 +1)
// Number the table rows as they're added in a cell to the left.
for(var j=0;j<2;j++) {
if(j == 0) {
var td = tr.appendTableCell(i/2 +1);
} else {
var td = tr.appendTableCell(text);
}
}
}
邏輯
您應該做的是迭代每個段落,並檢查該段落是否包含文本。 如果是,則添加一行並將其放在其中,否則跳過該段並跳至下一段。
實作
function formatArticle(){
var doc = DocumentApp.getActiveDocument()
var body = doc.getBody();
// Get the paragraphs
var paras = body.getParagraphs();
var addTable = body.appendTable();
//paragraph index
var pIndex = 0;
for(var i = 0 ; i < paras.length ; i++){
var para = paras[i];
var paraStr = para.editAsText().getText();
// if there is string content in paragraph
if(paraStr.length){
var tr = addTable.appendTableRow();
var td1 = tr.appendTableCell(pIndex);
var td2 = tr.appendTableCell(paraStr);
pIndex ++;
}
para.removeFromParent();
}
// Shrink left column.
addTable.setColumnWidth(0, 65);
}
在這里,您從段落var paraStr = para.editAsText().getText();
獲取字符串var paraStr = para.editAsText().getText();
並檢查內容是否存在if(paraStr.length)
如果是,則創建一行,在其中插入段落索引和段落文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.