【问题标题】:Embed just a range of editable google spreadsheet仅嵌入一系列可编辑的谷歌电子表格
【发布时间】:2018-02-14 00:40:12
【问题描述】:

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

src="https://docs.google.com/spreadsheets/d/1mjKXUsDs9EfqV9WztdfmNLm-sZwhphTieqEoBEHWce4/pubhtml?gid=0&single=true&widget=true&headers=false&range=a1%3Ah5&widget=false&chrome=false&rm=minimal"

当我只更改“pubhtml”时?要“编辑?”,这些用户应该可以编辑它,但它会向我显示整个工作表,包括标题等:

src="https://docs.google.com/spreadsheets/d/1mjKXUsDs9EfqV9WztdfmNLm-sZwhphTieqEoBEHWce4/edit?gid=0&single=true&widget=true&headers=false&range=a1%3Ah5&widget=false&chrome=false&rm=minimal"

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

谢谢, 史蒂夫

【问题讨论】:

  • 我也在尝试这样做。你找到解决办法了吗?
  • 没有,目前还没有解决办法。

标签: google-sheets range embed edit


【解决方案1】:

我得到的最接近的是

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

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

</iframe> 

我在编辑参数中使用了 rm=minimal

您可能需要更换 ?使用 & 但它有效 - 我唯一无法摆脱的是行和列标题

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

希望对你有帮助

【讨论】:

    【解决方案2】:

    嵌入 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>
    

    可编辑嵌入 -(选项#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”显然非常有效。我还没有尝试过 - 我会把它留给其他人。

    可编辑嵌入 -(选项#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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多