如何将单个Google表格单元格的文本内容嵌入到网页中?

时间:2019-09-16 18:51:04

标签: html google-apps-script google-sheets google-apps-script-web-application

背景:我有一个Google表格可以自动管理关键组织活动的日期,但有时必须手动覆盖它。我一直在组织的网页上使用PHP复制这些自动计算的事件日期,但是当在Sheets数据库中手动更改事件日期时,它无法处理。

需要声明:我希望获取Google“ DateCalc”表格中单元格“ A33”(包含更正的下一个日期)的文本内容,并将其自动嵌入网页中的句子中,其中指出:“下一个事件是预定于???。”其中“ ???”是对单元格A33的文本内容进行HTML嵌入所需的一切。

我尝试过使用Sheets的“发布到网络”功能的所有嵌入方法,仅显示包含整个Sheets页面内容的框架,而我却找不到一种简单的单一文本显示方法,这就是我要寻找的。到目前为止,我发现的所有解决方案都是针对更复杂的情况。我相信我在工作表(源)端不需要任何更多的代码,只需在目标端使用适当的“嵌入代码段”即可。

我可以嵌入一个完整的表格,但是还没有找到一种将简单的文本字符串嵌入句子中周围文本的方法。

这个网络脚本是我能找到的最接近的...

Our next meeting is on <object data="https://docs.google.com/spreadsheets/d/e/2PACX-1vQq6sXBel4SOW5U_XLnQ1xyyl4P-aK2v1R-5uofUvstMLV89_yCSqX3Lmsy4B7E21gojeG88efGFjZ0/pubhtml?gid=604484136&amp;single=true&amp;range=A29&amp;chrome=false" type="text/html" width="171" height="15"></object>.

但是,如果代码段确实运行了(我更改了文件ID以保护无辜的人),您会看到它不会产生内联文本字符串,而是一个隔离的“块”,其中包含文本,例如如下所示。...

enter image description here

文本似乎是图像,而不是文本,它已移到文本基线上方,并且紧随其后有一个小的灰色斑点,我无法摆脱。

我正在靠近,但还没有雪茄!

3 个答案:

答案 0 :(得分:1)

我假设您的服务器使用了PHP和HTML的组合,因此一种方法可以是使用该PHP代码来调用Sheets API以检索数据。在PHP Sheets API Quickstart中,您可以找到有关如何设置项目以实现服务器与API之间有效连接的示例。完成本教程后,您可以修改脚本以包括以下功能,从而可以实现您的原始请求。

function getNextDate() {
  $client         = getClient();
  $sheetsService  = new Google_Service_Sheets($client);
  $spreadsheetID  = '{YOUR SPREADSHEET ID}';
  $cellRange      = 'DateCalc!A33';
  $serverResponse = $sheetsService->spreadsheets_values->get($spreadsheetID, $cellRange);
  $cellValue      = $serverResponse->getValues();
  if (empty($cellValue)) {
    return "NO MEETINGS AHEAD!\n";
  } else {
    foreach ($cellValue as $value) {
      return $value[0];
    }
  }
}

一种完全不同的选择是使用Web应用程序。您可以使用this tutorial部署一个Web应用程序,该应用程序以后可以嵌入到您的网页中以显示以下会议日期。

因此,有两种免费的替代方案可以实现您的目标:使用Sheets API或网络应用程序;在这个答案中,我提供了API选项的功能。请不要犹豫,提供信息以进行进一步的澄清或寻求帮助。

答案 1 :(得分:0)

雅克- Merci beaucoup!

这几天来不间断的努力充满了挑战,但是您让我走上了正确的轨道。

使用不到20行的JavaScript代码,包括一行用于免费的TableTop.js库调用(请参见https://github.com/jsoma/tabletop#if-your-publish-to-web-url-doesnt-work),并在我的HTML语句中间插入一个字符串,就产生了我正在寻找的内容,该解决方案比几乎所有其他所有解决方案都无限简化,我发现它需要多个库,订阅费,复杂的系统调用等。

最困难的部分是将JavaScript代码插入到构建我的网站的WordPress中,因为您基本上只能将纯文本插入WordPress页面中,但是可以使用添加的WordPress插件(插入页眉和页脚)代码进入WordPress页面。

非常感谢您引导我朝正确的方向前进,并在此过程中获得了很好的学习经验。 :-)

答案 2 :(得分:0)

<块引用>

我们的下一次会议开始

我构建了一个免费、开源且易于使用的服务和徽章生成器,名为 https://cellshield.info 。它开箱即用,适用于公共 Google 电子表格。您在上面看到的是徽章的 实时 Markdown 输出版本,该版本从 spreadsheet 同步,其值的格式与您的示例中显示的格式相同,公式为 TODAY() . Markdown 只是制作了一个图像标签,我想你可以用任何其他可以制作图像标签的东西来做。

如果您希望黄色或任何格式消失,请尝试以下操作:

<块引用>

我们的下一次会议开始

这是通过在参数中添加 &color=rgba%28255%2C255%2C255%2C0.0%29&style=flat-square 来实现的。文字不匹配,可维修。

无论如何,I see you went with tabletop 但如果您或其他任何人只想做您想做的事,那么我的服务应该足够了。

例如,用于此 Game Boy development contest 显示奖池金额。


如果需要私有电子表格解决方案,可以分叉我的代码,在他们的 Google Cloud Platform 帐户中的 Cloud Run 上运行它,并明确地将电子表格共享给他们的 Google Cloud Platform 实例上的服务帐户。