我正在尝试编写一个脚本,将光标周围的文本设置为大写,并将封闭的段落设置为 HEADING1。我能够做第一件事,但我无法弄清楚如何使用 getCursor() 方法获取包含光标的段落。这是我尝试过的:
var cursor = DocumentApp.getActiveDocument().getCursor();
var element = cursor.getElement();
var paragraph = element.asParagraph();
Run Code Online (Sandbox Code Playgroud)
但是,element 是 TEXT 元素,不能转换为 PARAGRAPH。有没有办法从文本元素中获取段落?
谢谢。
我有一个 Google 文档模板,它会自动复制到文件夹中,并用电子表格单元格中的值替换特定值。
该模板包含诸如<<41>>用于“查找并替换”来自电子表格的值的值。
查找和替换过程很好,文档的结果如下图所示
现在,我希望这个文档在更新后转换为PDF,所以我创建了一个转换函数,并在执行完所有代码后在底部调用它。
这是函数:
//convert to PDF
function convertPDF(FileID,newName) {
Utilities.sleep(120000);
docblob = DocumentApp.openById(FileID).getAs('application/pdf');
/* Add the PDF extension */
docblob.setName(newName + ".pdf");
var file = DriveApp.createFile(docblob);
}
Run Code Online (Sandbox Code Playgroud)
转换工作正常,但转换后的文档未更新。相反,它就像是在值更改之前从模板中新鲜复制的模板。
如果你可能注意到了,我之前在转换函数中添加了一个“睡眠”计时器,以便延迟转换并给保存更改的时间,我尝试过 1 和 2 分钟睡眠,但仍然不起作用。
我该如何确保 PDF 是根据更新后的模板创建的?
在 Google Doc 上使用下面的脚本,我试图在电子邮件正文中将文档作为 HTML 发送。它正确转换文档(当我通过 url 检查导出的文档时)并发送具有相同内容的电子邮件,但它在某些时候丢失了以下格式:字体格式(例如,大小、颜色)和表格格式(例如,边框,背景颜色)
function sendGoogleDocAsHTML(){
var id = DocumentApp.getActiveDocument().getId() ;
var url = "https://docs.google.com/document/d/"+id+"/export?format=html"
var param = {
method : "get",
headers : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions:true,
};
var html = UrlFetchApp.fetch(url, param);
var email = <EMAIL>;
var subject = <SUBJECT>;
GmailApp.sendEmail(email, subject,"", {htmlBody:html});
}
Run Code Online (Sandbox Code Playgroud)
如何保留电子邮件中的格式?
如何以编程方式使用 google 文档以编程方式从 pdf 文件中提取文本?我都知道还有其他选择,但是,我很好奇是否可以将谷歌文档用于此类目的。
我在 Google 文档(不是工作表)中有一个表格。第一列包含一个 ID 号,该 ID 号与提交数据的 Google 表格中的相对 ID 相匹配。
//This is what the table looks like
//[id][name][favourite cheese]
//[3 ][bob ][chedder]
//[4 ][jane][old english]
Run Code Online (Sandbox Code Playgroud)
我需要
这是我当前的代码:
// Grab the Table
var body = DocumentApp.openById('theId').getBody(),
searchElement = body.findElement(DocumentApp.ElementType.TABLE),
element = searchElement.getElement(),
table = element.asTable();
Run Code Online (Sandbox Code Playgroud)
这部分代码用于获取表格,因为您无法在 Google 文档中命名表格。
我很惊讶我找不到更多信息。我正在尽最大努力利用文档,并感觉我将使用“For Loop”来搜索每一行,但我需要 .getElement(row) 来循环吗?我可以使用 .findText() 还是会显示包含文本的表的每个部分。也许我可以以某种方式在每行的第一列中循环 .getElement(row) 和 .findText() ?
我知道循环是一个相当基本的 Javascript 概念,只是 Google 文档的处理方式让我感到困惑。
我正在尝试将 Google 文档表嵌入到我的网站中,但是,我在删除标题栏和页脚时遇到了问题。我只想嵌入一系列单元格而不是其他任何东西。有没有人有解决方案?我在 iframe 中尝试了“chrome=false”和“widget=false”,但无济于事。任何帮助将不胜感激。谢谢。
我的 iframe:
<iframe src="https://docs.google.com/spreadsheets/d/e/2PACX-1vRAQLoHO6TOpu7Sh5M3DwUoHt_eh-dWb-fHAB6Jn5rRtbxJSGsKbXuw3C6nmC_FTqzSiSmLWStRrrDT/pubhtml?gid=0&range=a1:l28";single=true&widget=false&headers=false; width="1000" height="600;"></iframe>
Run Code Online (Sandbox Code Playgroud) 这就是场景。我需要得到值的总和,直到它到达一个空白单元格。之后,它应该再次开始计算空白单元格之后的总和。我需要单独添加每道菜的每种成分的脂肪和碳水化合物。

这是预期的结果。数百道菜中的每道菜。在这种情况下,我手动输入了数据:
我试过这个,但正在添加列中的所有数据:
IF(SUM(C3:C)="","",SUM(C3:C)))
Run Code Online (Sandbox Code Playgroud)
我也试过这个公式,但没有用:
IF(C3:C="","",SUM(INDIRECT(ADDRESS(ROW(C3:C),COLUMN(C3:C400))&":"&"C"&MIN(ARRAYFORMULA(IF(C3:C400="",ROW(C3:C400),""))))))
Run Code Online (Sandbox Code Playgroud)
这是电子表格,以防您需要它。
在此先感谢您的帮助。
我正在尝试通过 Node.js 使用 API 将 Word 文档转换为 Google 文档。单词文档已经在一个文件夹中,我只想将它们转换为谷歌文档。我正在使用v3。
v3 文档说,为了使用副本转换文件,您需要将转换参数替换为资源正文中的 mimeType。
我不知道该怎么做?
function listFiles(auth) {
const drive = google.drive({version: 'v3', auth});
drive.files.list({
q: "mimeType = 'application/msword'",
pageSize: 100,
fields: 'nextPageToken, files(id, name)',
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
const files = res.data.files;
if (files.length) {
console.log('Files:');
files.map((file) => {
console.log(`${file.name} (${file.id})`);
drive.files.copy({
fileId: file.id,
'name' : 'Updated File Name',
'mimeType' : 'application/vnd.google-apps.document'
})
});
} else {
console.log('No …Run Code Online (Sandbox Code Playgroud) Google Docs API 提到了如何获取带有建议的文档(跟踪更改),但没有提及如何向文档添加建议。
如何使用 Google Docs API 或 Apps 脚本在文档中插入编辑建议?
我正在尝试使用 Google Apps 脚本缩进一个段落 - 只是一个普通的缩进。这应该是世界上最简单的事情,但事实证明它非常令人沮丧。
下面是我正在调用的代码的相关部分,请记住我正在做的其他所有事情(下划线、设置粗体等)都运行良好。
function AppendDocument(){
var doc = DocumentApp.openById('____________________');
var body = doc.getBody();
var myParagraph = body.appendParagraph("Hello This is a paragraph - I want to indent this please");
myParagraph.setUnderline(true); //<-- Things like this work fine
myParagraph.setIndentStart(72.0); //I just randomly chose 72. No number is working.
}
Run Code Online (Sandbox Code Playgroud) google-docs ×10
javascript ×2
spreadsheet ×2
email ×1
embed ×1
formatting ×1
html ×1
mailmerge ×1
ms-word ×1
node.js ×1
paragraph ×1
pdf ×1
python ×1
python-3.x ×1
templates ×1