下载嵌入的谷歌表格

lam*_*low 4 google-docs google-sheets

因为我无论如何都不是网络开发人员,所以我只是提出一个问题,但我还没有找到解决方案。我有一个谷歌表格,其中包含多个页面/表格。该文件嵌入在网页内的 iframe 中,我提取了 url,并可以使用该 url 直接打开它。以下链接只是一个示例,因为我无法共享实际链接,因为我不允许这样做:

https://docs.google.com/spreadsheets/d/e/{key}/pubhtml?widget=true&headers=false

我已经尝试过: https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key={key}

并且不工作我收到错误:

Sorry, unable to open the file at present.

Please check the address and try again.
Run Code Online (Sandbox Code Playgroud)

该文件不适合任何人下载或共享。此外,由于它是作者不断手动更新的,我需要跟踪更新,因此由于文件太大,截图效率不高。有什么方法可以将实际工作表下载到我的设备上(以便我可以长期比较文件更新)谢谢。

Tan*_*ike 7

我相信你的目标如下。

  • 您想要下载 Google 电子表格。
  • 您是 Google 电子表格的所有者。
  • 电子表格以 Web 形式发布。所以电子表格的 URL 是https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pubhtml?widget=true&headers=false

问题和解决方法:

遗憾的是,Google 电子表格无法直接下载为 Google 电子表格。看来这是当前的规范。在这种情况下,需要将 Google Spreadsheet 导出为其他 mimeType。例如,XLSX 格式、PDF 格式和 CSV 格式。但不能直接导出URL https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pubhtml?widget=true&headers=false。因此,在这个答案中,作为一种解决方法,我想建议使用 URL 将 Google 电子表格导出为其他 mimeType。

当使用您的 URL 时,导出的 URL 如下。

修改后的网址:

https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pub?output=xlsx
Run Code Online (Sandbox Code Playgroud)
  • 在这种情况下,当您使用浏览器访问上述 URL 时,您的电子表格可以导出为 XLSX 文件。

  • output=xlsx修改为output=pdf和时output=csv,可以分别导出为 PDF 文件和 CSV 文件。

  • 当您想要导出特定的工作表时,请使用工作表 ID,例如gid=0。网址如下。

      https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pub?output=xlsx&gid=0
    
    Run Code Online (Sandbox Code Playgroud)

笔记:

  • 当您想让用户下载电子表格时,可以添加a如下标签。

      <a href="https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pub?output=xlsx">Download</a>
    
    Run Code Online (Sandbox Code Playgroud)