嵌入了一系列可编辑的Google电子表格

时间:2017-09-05 16:37:14

标签: google-sheets range embed edit

我有一个谷歌电子表格,我给每个用户他们自己可以编辑的小范围(实际上只是他们自己的行)。现在我想使用iframe嵌入此工作表。如何嵌入一系列此可编辑电子表格?这一行显示了我想要的所需范围,但由于" pubhtml?",它不可编辑:

SRC =" HTTPS:?//docs.google.com/spreadsheets/d/1mjKXUsDs9EfqV9WztdfmNLm-sZwhphTieqEoBEHWce4/pubhtml GID = 0&安培;单=真安培;插件=真安培;头=假安培;范围= A1%3AH5&安培;插件=假安培;铬=假安培; RM =最小"

当我改变" pubhtml?"对于"编辑?",这些用户可以编辑它,但它会显示整个工作表,包括标题等:

SRC =" HTTPS:?//docs.google.com/spreadsheets/d/1mjKXUsDs9EfqV9WztdfmNLm-sZwhphTieqEoBEHWce4/edit GID = 0&安培;单=真安培;插件=真安培;头=假安培;范围= A1%3AH5&安培;插件=假安培;铬=假安培; RM =最小"

我可以在嵌入的某些参数上找到很多(令人困惑的)信息,但是没有找到这个问题的答案。还是不可能? (注意:我确实找到了两个类似的问题,但他们没有回答我的问题 - 或者我可能没有理解答案?: - )

谢谢, 燕姿

2 个答案:

答案 0 :(得分:0)

嵌入Google表格似乎并不像人们希望的那样直观。但是一些研究(记住,Google是您的朋友,除非您的名字与Rump押韵),以及一些反复试验为您的问题提供了解决方案。

OP的计划是为每个用户提供访问其自己的行以进行数据输入的权限。人们可能会想到可以/将要完成的几种方法。 (对我而言)最明显的是简单地使用户能够访问主表上的“其行”,例如,“用户A”可以访问第53行,“用户B”可以访问第17行等等。这很容易做到(如我们将看到的),但值得/重要的是用户还应该看到列标题。例如,如果列标题位于第1行,则“用户A”需要访问第1行和第53行。问题!我们可以访问连续的行,但不能访问两个离散的范围。因此,这种方法根本不可能-或者至少我找不到实现它的方法。

我采用的方法是从母版纸开始。然后为每个用户添加一张额外的纸。例如,我们添加工作表“用户A”,“用户B”,依此类推。每个“用户表”只有两行数据。第1行包含列标题,第2行包含用户数据-这使我们可以连续访问用户的两个连续行。主表中的单元格从包含手工输入/硬编码的数据变为链接到适当用户表上适当列的简单公式。

我认为授予每个用户访问自己行的权限是不明智的(但是可以这样做)。我认为,各种安全隐患并不能证明存在风险。我的强烈建议是每个用户都应该有自己的工作表(即每个用户一个单独的文档)。然后,用户只能访问该工作表中有限数量的行,并且主工作表(这是一个单独的文件)包含用于在用户工作表(也是一个单独的文件)中提取数据的公式。通过这种方法,如果用户设法“向上推”(无论/何时/如何,但是您只知道它会发生),则仅影响他们的工作表(以及指向母版的链接)。这与使整个主电子表格处于风险中的方法相比。

出于完整性考虑,我建议解决各种选择-听起来可能很令人厌烦。 为参考起见,我创建了一个Google工作表(so_46059687)作为OP的主工作表的替代。

不可编辑的嵌入-(版本1)
在此示例中,可以看到但不能编辑母版表。该文档包括两个“用户”表,但是这些(选择)不可见。

我发现Google论坛中的两个文档“ Embed Sheet and remove Titles and Scrolling bars”和“ How to I edit the height/width of a google sheets embed code when embedding it on my website?”非常有用

Codepen example

<iframe width="100%" height="250" src="https://docs.google.com/spreadsheets/d/e/2PACX-1vR-1keK8Wmyr4V6o6cjskLCetvsmbLeMsJuZViPpqkPck2-P2kCb4E4Ta_YMjbawz4lfgU_LVPFuqya/pubhtml?gid=0&amp;single=true&amp;widget=true&amp;headers=false"></iframe>

不可编辑的嵌入-(第2版)
这是版本1的主题的变体,只是使其中一个用户表可见。第二个用户表不可见(通过选择)。

Codepen example

<iframe width="100%" height="250" src="https://docs.google.com/spreadsheets/d/e/2PACX-1vR-1keK8Wmyr4V6o6cjskLCetvsmbLeMsJuZViPpqkPck2-P2kCb4E4Ta_YMjbawz4lfgU_LVPFuqya/pubhtml?widget=true&amp;headers=false"></iframe>

可编辑的嵌入-(Option#1)
此方案显示了OP的问题的解决方案。用户可以编辑其行的数据。有一个缺点-用户可以完全访问其工作表。他们可以使用链接到主表的行和列之外的其他行和列,可以添加表,但更糟的是,可以删除其表。

这两篇无价的文章介绍了如何创建可编辑的嵌入:Google Docs: Embedding editable Google DocsHow to: Embed an editable Google Docs sheet

Codepen example

<iframe width="100%" height="400" src="https://docs.google.com/spreadsheets/d/1XqT5umvq2vzK7CEivVJXTJdKlBW07bP9nnMMWs2px_Y/edit?usp=sharing"></iframe>

有一些注意事项:

  1. 名为“ Fred”的用户表已为“ Share [d]”。在这种情况下,我选择“任何具有链接的人”,以便它在Codepen中起作用,但实际上,我将设置权限,以便只有被提名的人才能编辑工作表。
  2. 母版表是挂锁的,这意味着它是可见的,但不可编辑。另一个选择是完全隐藏母版表,但是我选择了其他方式,以便向所有者展示这些选项。
  3. 请注意,其他用户表(称为“ Joe”)不可见(因为尚未共享”)。
  4. 请注意,在用户工作表上编辑的所有内容(称为“ Fred”)都将立即在母版中更新(称为“ Coy_Summary”)
  5. 如前所述,用户可以删除其工作表或添加额外的工作表。但是,本文(和代码)“ Google Spreadsheet Script To Insert And Delete Sheets with Protection”显然很有效。我还没有尝试过-我会把它留给其他人。

可编辑的嵌入-(Option#2)
这是我的建议如何运作的一个例子。每个用户(在本例中为“ Brian”)都有自己的文件(工作表),而主工作表通过“ IMPORTRANGE”功能获取用户数据。另一个方面是,用户仅限于两行(尽管没有任何限制访问额外列的操作)。

引用Google sheet

文档“ How to embed specific cells range when embedding a Google spreadsheet”非常重要。它详细说明了如何限制嵌入范围。辉煌! “ How to Share only Specific Sheet/Single Tab in Google Spreadsheet?”也很有价值。

Codepen example

<iframe width="250" height="75" src="https://docs.google.com/spreadsheets/d/e/2PACX-1vSzsA_yrb2uBCXywikOAbWrLnnEPYazevavza7PmtX9C6-xNw4p31gtCRBiCyxYkxVK7aMAWY1xZJ2o/pubhtml/sheet?headers=false&amp;gid=936292221&amp;range=A1:C2"></iframe>

顺便说一句,如果您在Codepen Option#1中查看主表,则可以看到实际的“ importrange”公式。

这是母版表B列中“项目#”的公式:

=importrange("https://docs.google.com/spreadsheets/d/1-HtjEawH7p45qKY5c0syIOnTF15endnG4L8wIIPEaAs/edit?usp=sharing", "Brian!b2:b2")

答案 1 :(得分:0)

我最近的是

<iframe  width = 100% height="700" seamless frameborder="0" scrolling="yes"

src="https://yoursheetid?rm=minimal#gid=0/edit?" 

</iframe> 

我使用rm = minimal和修改参数

您可能需要更换?与&一起使用-我唯一能摆脱的是行和列标题

我正在使用Google网站嵌入项目

希望这会有所帮助