【问题标题】:Exporting a specific sheet with Google Spreadsheet's Direct Download URL to Dropbox folder使用 Google 电子表格的直接下载 URL 将特定工作表导出到 Dropbox 文件夹
【发布时间】:2015-11-23 09:55:23
【问题描述】:

我有一个名为“电子表格”的电子表格,它有三个表格,分别名为“a”、“b”和“c”。我目前使用这种 url 格式发布了这个电子表格

<!-- This script uses the super simple Dropbox Drop-In API -->

<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="ex4mpl3K3y"></script>

<!-- This anchor establishes the dropbox button which determines the file to download to your dropbox folder. --> 

<a href="https://docs.google.com/a/account/spreadsheets/d/r4Nd0MSpR34d5h33t/export?format=csv&id=r4Nd0MSpR34d5h33t" data-filename="file-name.csv" class="dropbox-saver"></a>

这种 url 格式允许任何人下载文件的 csv 版本,但它会下载表格 a、b 和 c。我将如何修改此网址以仅下载工作表 b 或工作表 c?

【问题讨论】:

  • AFAIK,您不会修改您的 URL,您将创建一个新的 Google Apps 脚本,使用 Publish WebApp 服务复制指定的工作表并下载给用户。
  • 谢谢@Kriggs!我实际上发现了 url 需要是什么。有四个变量:account、spreadsheetId、sheetId和format。我正在写一个小任务,它将通过宏动态获取这些变量,我将发布该答案。

标签: csv google-apps-script google-sheets google-spreadsheet-api http-get


【解决方案1】:

如何将 Google 电子表格导出到 Dropbox


设置 Dropbox

  1. 在 www.dropbox.com 创建一个 Dropbox 帐户
  2. 使用 API 控制台创建 Dropbox 应用 https://www.dropbox.com/developers/apps 确保给它一个Drop-ins 权限类型
  3. 在“应用控制台”选项卡中,转到新应用的设置并添加以下域

docs.google.com || 127.0.0.1 || 本地主机 || googleusercontent.com

  1. 注意应用密钥
  2. 添加此脚本以使用the Dropbox Drop-in API's Saver method&lt;script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="YOURAPPKEYRECEIVEDFROMAPICONSOLE"&gt;&lt;/script&gt;

设置 Google 电子表格

  1. Set up a google account
  2. Create a spreadsheet
  3. Securely publish the sheet to the web
  4. 在电子表格工具栏上转到Tools > Script Editor。这将打开一个新窗口,您将在其中看到一个名为 code.gs 的空 javascript 文件
  5. 将以下脚本之一添加到您的code.js
  6. sheetId 是 url 中 /d/ 后面的随机字符系列。 gid 可以通过转到 publish sheet to the web 选项并选择要发布的特定工作表、复制给定的 url 并在标记为 &amp;gid= 的 http 查询参数中找到值来找到

功能宏魔法

您将看到的代码是一个非常简单的脚本,它为您的电子表格添加了一个菜单选项

    function onOpen() {
          var menuItems = [
            {name: 'Dropbox', functionName: 'dropbox'}
          ];
          SpreadsheetApp.getActive().addMenu('The Make Life Easy Button', menuItems);
    }
    function dropbox(){

     var dropboxKey = 'string';
     var sheetid = 'string';
     var gid = 'string';
     var fileName = 'string';
     var testResults = '<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="'+ dropboxKey +'"></script>';
  testResults += '<h2>Store Content Sheet</h2><a href="https://docs.google.com/a/' + account + '/spreadsheets/d/' + sheetid + '/pub?gid=' + gid + '&single=true&output=csv" data-filename="' + fileName + '" class="dropbox-saver"></a>'; 

    // Show a dialog with the test results.
       var htmlApp = HtmlService
         .createHtmlOutput(testResults)
         .setSandboxMode(HtmlService.SandboxMode.IFRAME)
         .setTitle('Test Results')
         .setWidth(600)
         .setHeight(400);
      SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);
    }

未来读者须知

您需要同时授予 google 脚本和 Dropbox 的权限。

请确保在任何需要进一步说明的步骤上留下 cmets,我将确保填补空白。如果内容已过时,我们将非常感谢让 cmets 保留更新的材料。

【讨论】:

  • 嘿约瑟夫!这是一篇很棒的文章,我正在寻找非常相似的东西,但我需要把它放在触发器上。基本上每隔一小时左右,将同一张表格上传/覆盖到 Dropbox。你认为这可能吗?我开始尝试将工作表提取为 CSV 文件,然后使用此端点“content.dropboxapi.com/2/files/upload”以编程方式将其上传到 Dropbox,但我对如何将工作表实际转换/提供为 csv 文件感到困惑。这似乎是一种更简单的方法,并且想知道它是否可以在没有任何人工干预的情况下工作。
猜你喜欢
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 2015-08-06
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多