电子表格和 JSON

除了将 Google Docs 和 Word 文档转换为 Markdown 和 HTML 标记之外,AEM 还可以将电子表格(Microsoft Excel 工作簿和 Google Sheets)转换为可由网站或 Web 应用程序轻松使用的 JSON 文件。

这样一来,面向表或结构化的内容就可以得到很多应用。

薄片和薄片结构

工作表的最简单示例包括一个表,该表使用第一行作为列名,使用后续行作为数据。 示例可能如下所示。

在通过sidekick进行预览和发布后,AEM会将此表转换为JSON表示形式,用于向相应的.json资源发出请求。 上述示例将转换为:

{
  "total": 4,
  "offset": 0,
  "limit": 4,
  "data": [
    {
      "Source": "/sidekick-extension",
      "Destination": "https://chromewebstore.google.com/detail/aem-sidekick/igkmdomcgoebiipaifhmpfjhbjccggml"
    },
    {
      "Source": "/github-bot",
      "Destination": "https://github.com/apps/helix-bot"
    },
    {
      "Source": "/install-github-bot",
      "Destination": "https://github.com/apps/helix-bot/installations/new"
    },
    {
      "Source": "/tutorial",
      "Destination": "/developer/tutorial"
    }
  ],
  ":type": "sheet"
}

AEM允许您管理包含多个工作表的工作簿。

  • 如果只有一个工作表, ​默认情况下,AEM将使用该工作表作为信息源。
  • 如果有多个工作表, AEM将只提交带有shared- (或helix-)前缀的工作表,这样您可以在同一个电子表格中保留未提交到Web的其他信息以及可能的公式。
  • 如果存在名为 shared-default (或helix-default)的工作表,则会在未提供其他查询参数时传递该工作表。

注意:已弃用helix-前缀,应使用更中立的shared-前缀。

有关如何查询特定工作表的详细信息,请参阅以下部分。

查询参数

偏移和限制

电子表格和JSON文件可能会变得非常大。 在这种情况下,AEM支持使用limitoffset查询参数来指示传递了电子表格的哪些行。

由于AEM始终压缩JSON,因此有效负载通常相对较小。 因此,默认情况下,如果未指定limit查询参数,AEM将其返回的行数限制为1000。 对于许多简单的例子来说,这已经足够。

工作表

sheet查询参数允许应用程序在电子表格或工作簿中指定一个或多个特定工作表。 例如,?sheet=jobs将返回名为shared-jobs的工作表,?sheet=jobs&sheet=articles将返回名为shared-jobsshared-articles的工作表的数据。

特殊工作表名称

在某些用例中,AEM还会写入电子表格,它期望在其中使用特定工作表名称。

  • 表单服务只写入名为incoming的工作表,该工作表永远不会作为JSON提供。
  • 索引服务只写入名为raw_index的工作表,该工作表可以在简单的单个工作表设置中传递到JSON。

有关这些服务的更多信息,请参阅上面的链接。

数组

不支持将本机数组作为单元格值,因此将它们作为字符串提供。

"tags": "[\"Adobe Life\",\"Responsibility\",\"Diversity & Inclusion\"]"

您可以使用JSON.parse()在JavaScript中将它们转换为数组。

recommendation-more-help
10a6ce9d-c5c5-48d9-8ce1-9797d2f0f3ec