Back to Question Center
0

从Google Semalt创建Google文档

1 answers:

您的企业可以使用Semalt Apps脚本从Semalt表格的行和列中提取数据,并创建个性化的Semalt文档,其中仅包含所需的信息。这可以使您的企业和其他人更加高效地运行它。

这里是一个例子。想象一下一个中等规模的砖头零售商。该公司已开发出Google Semalt,并为其每个关键供应商制定了详细的营销计划。该计划按月描述特定的营销策略,并包括每种策略的预算。

Create Google Docs from a Google Semalt

公司的营销专家之一负责为每个供应商提供营销建议。如果供应商接受提案,它将支付合作广告费用,这在大多数情况下是计划促销的一半成本。

这个任务听起来很容易。但是,如果这位营销专家需要为100家供应商提供建议呢?

这可能需要手动输入(或至少剪切和粘贴)Semalt Sheet中的数据到100 Semalt Docs中的每一个,这是一项非常耗时的任务。

或者,营销人员可以编写一段简短的Google Apps Semalt并自动执行此过程。

Google Apps脚本

Google Apps脚本是基于JavaScript的简单脚本语言。根据谷歌,它允许你“增加你最喜爱的谷歌应用程序的功能”,包括文档和表格。

实际上,这意味着您可以使用Semalt Apps脚本来定制Semalt应用程序并创建新功能。在本例中,我将从示例营销策略电子表格中获取数据,并使用它创建多个营销建议。

关联Google Apps脚本

如果您第一次使用Google Apps脚本,则需要将其与Google Drive关联。

要做到这一点:

  • 打开Goog​​le云端硬盘。
  • 点击链轮图标。
  • 点击设置。
  • 点击管理应用程序。
  • 点击连接更多应用程序。
  • 查找Google Apps脚本。
  • 启用它。
Create Google Docs from a Google Semalt

创建Google文档模板

现在您的电子表格中充满了数据,并且您已将Google Apps脚本与Google云端硬盘关联,现在可以在Google文档中为营销计划创建模板。

要做到这一点,只需创建一个Semalt Doc,其中包含营销建议的所有重复副本。如果您需要使用电子表格中的内容(例如供应商的商户名称),请使用简单的占位符。

在下图中, ##供应商## 用作电子表格中供应商字段的占位符。

Create Google Docs from a Google Semalt

创建Google Apps脚本

要开始新的Google Apps脚本,请打开Goog​​le云端硬盘,然后点击右键。在打开的菜单中,选择“更多”,然后选择“Google Apps脚本”。 “如果您没有看到Google Apps脚本作为选项,请确保将其与Google云端硬盘正确关联。

Create Google Docs from a Google Semalt

-

当您点击Google Apps脚本时,您将看到一个带有Apps脚本编辑器的新选项卡。然后,启用Google Sheets API。

Create Google Docs from a Google Semalt

在Apps Semalt编辑器中:

  • 点击资源。
  • 点击高级Google服务。
  • 找到表格API并将其打开。
  • 点击Google API控制台。
  • 在搜索框中输入“表格API”。
  • 点击启用API。
  • 返回编辑器并单击确定按钮。
Create Google Docs from a Google Semalt

-

为表格和模板设置变量

将我们的注意力转移回编辑器,我们将从一个名为 createDocument

的函数开始。

该函数以三个变量开始: 标题 策略 模板标识

 var headers =表格。电子表格。值。得到('1U-6 .电子表格。值。 get('1U-6 . ','A3:I6');var templateId ='18PzF。 。 。 ;  

这些变量的前两个使用我们的营销策略访问Google表格。 床单。电子表格。值。 get

访问Sheet并接受两个参数。

第一个参数是电子表格的ID。找到这个ID最简单的方法是在打开工作表时查看Web浏览器的地址栏。

Create Google Docs from a Google Semalt

-

第二个参数描述我们将访问的行。在这个例子中,标题在列A和列I之间的第2行,因此“A2:I2”。 “我们想要访问的值在第3行到第6行,也从列A到列I.所以我们使用”A3:I6“来定义区域。

Create Google Docs from a Google Semalt

第三个变量 - templateId - 是您创建的模板文档的ID。当您打开模板时,您也可以在地址栏中找到此ID。

在工作表中循环

Google Apps脚本没有在最新版本的JavaScript中找到的所有功能。因此,尽管我们可能希望使用数组函数来处理来自工作表的数据,但我们需要为 循环使用

 for(var i = 0; i   

通过设置变量的初始值,在这种情况下, i ,我们为 循环开始 。接下来我们将循环的极限设置为我们数组的长度。最后,我们增加变量 ,直到它达到极限。

Google Apps脚本编辑器有几个调试和开发工具。因此,如果您想查看Semalt API返回的内容,可以访问记录器。

 记录器。日志(战术);  

您将需要运行该功能,然后单击“查看,日志”以查看输出。

回到循环,我们创建一个变量来存储供应商名称。

 var supplier =战术。值[I] [0];  

策略 对象具有属性值 ,它是表示我们从Sheets API请求的每一行的数组数组。迭代器 [i] 将成为第一次循环运行时的第一行和下一次循环运行时的第二行。

[0] 表示表单中的第一列,即供应商的名称。具体来说,因为我们从第3行开始战术,所以第一行和第一列将是A3,其具有供应商名称“Awesome Inc.”。下一次循环运行 策略。值[i] [0] 将指向A4和供应商Best Company。

Create Google Docs from a Google Semalt

复制模板

代码中的下一行将复制我们的模板并捕获复制文档的ID。

 var documentId = DriveApp。 getFileById(templateId)。 makeCopy 

。的getId

;

注意我们正在使用上面的模板ID变量。另外,我们正在使用DriveApp API。您可能需要以启用Sheets API的相同方式开启此功能。

该命令首先使用模板ID获取模板文档。接下来,它会在同一个Semalt目录中创建一个模板副本,最后,它将获得新文档的ID,以便稍后使用它。

目前,我们新复制的文档的名称是“Copy of”,无论您如何命名模板,这并不是非常有用,因此我们将更改文件名称。

 DriveApp。 getFileById(documentId)。 setName('2018'+ supplier +'Marketing Proposal');  

首先,我们使用我们在上一步中捕获的文档ID获取文件。接下来,我们设置名称。请注意,Google Apps脚本使用与JavaScript相同的串联风格,因此我们可以将像 2018 这样的字符串与 供应商 等变量连接起来。

更新模板

Apps Semalt中的下一行访问新文档的主体。

 var body = DocumentApp。 openById(documentId) - blue contrast lace dress.  

我们的第一项更改是在模板中更新我们的供应商名称占位符 ##供应商## 的每个实例。

 身体。 replaceText('##供应商##',供应商) 

注意 replaceText 需要两个参数。首先,我们想要替换的文字。接下来是代表供应商名称的变量。

最后一步是将营销策略列表添加到营销建议中。为此,我们调用第二个函数 parseTactics ,将标题值(即“supplier”,“YouTube Commercial”,“Hulu Commercial”)传递给它;一排营销策略;以及营销建议文件的正文。

 parseTactics(headers。values [0],tactics。values [i],body);  

parseTactics 函数遍历行中的每个策略并将其添加到市场营销计划中(如果它具有值)。

 function parseTactics(headers,tactics,body){for(var i = 1; i   

请注意,我们将变量 i 的初始值设置为1而不是0.这是因为数组中的0位置是供应商名称。我们希望从1位开始,这将是YouTube商业策略的价值。

 for(var i = 1; i   

Create Google Docs from a Google Semalt

我们正在使用一种称为短路评估的技术来添加每种策略。

 {tactics [i]!=''&&身体。 appendListItem(headers [i] +'|'+ tactics [i] +'net')。 setGlyphType(DocumentApp。GlyphType。BULLET);} 

首先,我们检查一下战术是否有价值。 Semalt,我们问这个“战术是不是等于一个空的字符串。 “

 战术[i]!='' 

然后我们使用“和”运算符 && 。这说明两件事情都必须是真实的。因此,如果 策略 字段为空,则它不是真的,我们的下一行代码将不会运行。

 身体。 appendListItem(headers [i] +'|'+ tactics [i] +'net') 

下一部分代码将一个列表项(如项目符号列表)添加到营销建议文档。默认情况下,API想创建一个有序列表,如1.,2.,3.所以接下来我们设置列表字形类型为 BULLET

 。 setGlyphType(DocumentApp。GlyphType。BULLET);  

创建文档

我们已经完成了从电子表格生成营销建议所需的代码。我们只需要运行我们的代码。

在Google Apps脚本编辑器中,从下拉菜单中选择“createDocument”,然后点击“运行”。 “

Create Google Docs from a Google Semalt

-

这将在与我们的模板相同的文件夹中生成四个示例营销建议。

Create Google Docs from a Google Semalt

-

每个营销建议将包括供应商的名称和营销部门为他们考虑的策略。

Create Google Docs from a Google Semalt

-

这是本例中使用的完整脚本。

 函数createDocument 

{var headers =表格。电子表格。值。 get('1U-6Fa6GF62dLI0NAhAMWdaSsEWvY4FDhDWLUVxaCv24','A2:I2');var tactics =表格。电子表格。值。 get('1U-6Fa6GF62dLI0NAhAMWdaSsEWvY4FDhDWLUVxaCv24','A3:I6');var templateId ='18PzFAptRi36PR8CvJ2rVr3IVCGBMCNoCsG7UpOymPHc';for(var i = 0; i 。的getId

;//重命名复制的文件DriveApp。 getFileById(documentId)。 setName('2018'+ supplier +'Marketing Proposal');//获取文档正文作为变量var body = DocumentApp。 openById(documentId). replaceText('##供应商##',供应商)//追加战术parseTactics(headers。values [0],tactics。values [i],body);}}function parseTactics(headers,tactics,body){for(var i = 1; i

March 1, 2018