标签: google-docs

Google Documents:从光标位置获取活动段落

我正在尝试编写一个脚本,将光标周围的文本设置为大写,并将封闭的段落设置为 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-docs google-apps-script

3
推荐指数
1
解决办法
2078
查看次数

创建的 PDF 不反映对原始文档所做的更改

我有一个 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 是根据更新后的模板创建的?

pdf templates google-docs google-apps-script

3
推荐指数
1
解决办法
1355
查看次数

使用 Google Apps 脚本在电子邮件正文中以 HTML 格式发送 Google 文档,同时保留格式

在 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)

如何保留电子邮件中的格式?

html email google-docs mailmerge google-apps-script

3
推荐指数
1
解决办法
2657
查看次数

如何使用 google docs 将 PDF 内容提取到 .txt 文件中?

如何以编程方式使用 google 文档以编程方式从 pdf 文件中提取文本?我都知道还有其他选择,但是,我很好奇是否可以将谷歌文档用于此类目的。

python google-docs python-3.x google-drive-api

3
推荐指数
1
解决办法
1799
查看次数

如何通过 Google 文档表“For 循环”

我在 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)

我需要

  1. 循环遍历 Google DOCUMENT 表中的每一行。
  2. 确定第一列中的单元格是否包含“文本”(与 ID 号相同)
  3. 如果它包含文本,则使用新数据更新该行

这是我当前的代码:

// 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 文档的处理方式让我感到困惑。

javascript google-docs google-apps-script

3
推荐指数
1
解决办法
1638
查看次数

Google Docs 删除标题和页脚

我正在尝试将 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&amp;widget=false&amp;headers=false; width="1000" height="600;"></iframe>
Run Code Online (Sandbox Code Playgroud)

embed spreadsheet google-docs

3
推荐指数
1
解决办法
5598
查看次数

垂直求和直到谷歌表格上的空单元格

这就是场景。我需要得到值的总和,直到它到达一个空白单元格。之后,它应该再次开始计算空白单元格之后的总和。我需要单独添加每道菜的每种成分的脂肪和碳水化合物。 在此处输入图片说明

这是预期的结果。数百道菜中的每道菜。在这种情况下,我手动输入了数据:

在此处输入图片说明

我试过这个,但正在添加列中的所有数据:

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)

这是电子表格,以防您需要它。

在此先感谢您的帮助。

spreadsheet google-docs google-sheets

3
推荐指数
1
解决办法
2855
查看次数

使用 API 通过 Nodejs 使用 Drive.files.copy 将 Word 文档转换为 Google 文档 在 Google Drive API v3 中进行转换

我正在尝试通过 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)

javascript ms-word google-docs node.js google-drive-api

3
推荐指数
1
解决办法
1406
查看次数

Google Docs API - 编辑文本作为建议

Google Docs API 提到了如何获取带有建议的文档(跟踪更改),但没有提及如何向文档添加建议。

如何使用 Google Docs API 或 Apps 脚本在文档中插入编辑建议?

google-docs google-docs-api google-apps-script

3
推荐指数
1
解决办法
904
查看次数

在 Google 文档中缩进段落 - Google 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)

formatting google-docs paragraph google-apps-script

3
推荐指数
1
解决办法
210
查看次数