如何自动下载Google文档电子表格的备份?

时间:2012-03-13 00:16:26

标签: export-to-excel google-docs google-docs-api export-to-csv

我目前正在使用Google表单,以允许用户提交存储在Google文档电子表格中的信息。我想知道是否可以定期自动备份电子表格。例如,每周五,电子表格将以CSV格式导出,并通过电子邮件发送给我或存储在服务器上受密码保护的目录中。

感谢阅读,感谢任何想法!

4 个答案:

答案 0 :(得分:5)

Google文档是在线编辑和协作文档的理想工具。 虽然Google文档不提供自动备份功能,但与Google文档同时使用Dropbox存储的用户可以获得解决方案。

解决方案是cloudHQ(10 $ + / pm)服务,可在Google文档和Dropbox之间提供实时同步。例如,在用户编辑某些Google文档网络文档时,该文档会在Dropbox中自动修改。这意味着, cloudHQ 会自动将文件从Google文档复制到Dropbox。

我想提出cloudHQ Quick Tour的以下链接。 CloudHQ 还提供Google Chrome扩展程序。借助 cloudHQ Chrome浏览器扩展程序,您可以直接从Google文档界面同步或复制Dropbox或Basecamp帐户中的任何内容与Google文档。 Google Chrome网上应用店中提供了扩展程序。

如果有人能就云服务之间的数据同步提供一些提示或意见,我将不胜感激。

答案 1 :(得分:3)

以下是解决方案:

  • 自动创建Google电子表格的备份(每天/每周等)
  • 作为Google云端硬盘中给定文件夹中的Excel文件(XLSX)
  • 您可以将其配置为自动同步到您的计算机

第1步

在Google云端硬盘中为备份文件创建一个文件夹(例如“我的云端硬盘>文档>备份”)。在浏览器中打开它,并在URL中记下其“ 文件夹ID ”。例如,来自以下URL的文件夹ID为1234abcdefgh_98765ijklmnopqrs_0XY

https://drive.google.com/drive/u/0/folders/1234abcdefgh_98765ijklmnopqrs_0XY?ths=true

第2步

打开您要自动备份的Google Spreadsheet。从顶部菜单中,选择“工具”>“脚本编辑器”。在打开的新窗口中,将默认代码替换为下面的代码,并确保:

  • 如果尚未启用Advanced Drive Service,请执行以下操作:从顶部菜单中,选择“资源”>“高级Google服务...”>“ Drive API”>切换为“开启”
  • 更新文件夹ID ,方法是将xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx替换为备份文件夹ID,并替换为var backupFolder = ...
// function to backup the current Spreadsheet as an Excel file (XLSX) in a given folder
// -- requires "Advanced Drive Service" which must be enabled in "Resources" > "Advanced Google services..." > "Drive API" > toggle "ON"
function backupSheet() {
  // UPDATE THE FOLDER ID for e.g. "My Drive > Docs > Backups"
  var backupFolder = DriveApp.getFolderById("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = spreadsheet.getId();
  var file = Drive.Files.get(spreadsheetId);
  var url = file.exportLinks[MimeType.MICROSOFT_EXCEL];
  var token = ScriptApp.getOAuthToken();
  var options = { headers: { Authorization: "Bearer " + token } };
  var response = UrlFetchApp.fetch(url, options);
  var doc = response.getBlob();
  var backupDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH-mm-ss");
  var backupName = spreadsheet.getName() + ".backup " + backupDate + ".xlsx";
  var tempFile = DriveApp.createFile(doc).setName(backupName);
  tempFile.makeCopy(backupName, backupFolder);
  tempFile.setTrashed(true);
}

如果要测试脚本,请单击代码上方的“ 运行”图标。这将在您配置的备份文件夹(基于前面提到的文件夹ID)中创建电子表格的备份Excel文件。

第3步

保存脚本(从顶部菜单中,选择“文件”>“保存”),然后单击代码上方的“ 触发器”图标(时钟形的图标)。在打开的新窗口中,单击“ +添加触发器”(在右下角)。您应该看到一个标题为“为backupSheet添加触发器”的覆盖图,您可以在其中计划自动备份的执行。例如,如果您希望它在星期一每周运行一次,则应配置以下设置:

  • 选择要运行的功能: backupSheet
  • 选择应运行的部署: Head
  • 选择事件源:时间驱动
  • 选择基于时间的触发器的类型:周定时器
  • 选择星期几:每个星期一
配置触发器后,

保存。现在,将自动在您的Google云端硬盘中的所需文件夹中创建Excel备份。

第4步

最后,在计算机上安装Backup and Sync from Google(如果尚未安装),并将其配置为同步Google云端硬盘帐户中的备份文件夹-在“首选项”>“ Google云端硬盘”中>启用“同步”我的云端硬盘到这台计算机”,并确保备份文件夹位于要同步的文件夹之中。

该应用程序现在将自动下载Google Spreadsheet的Excel备份,供您离线使用!

答案 2 :(得分:0)

两种不涉及付费订阅的解决方案:1)编写使用pick your language作为CSV导出Google表格的脚本或简短应用(Google Drive API)。为什么选择Drive API? Sheets API用于电子表格定向功能,即数据格式设置,列调整大小,创建图表,单元格验证等,而Drive API适用于文件面向导向的功能,即导入/导出。

如果你使用Python,可以在complete example使用Google App Engine作为服务器上的cron作业或Google APIs Client Libraries上的app-hosting。如果您不这样做,则可以将其用作伪代码并选择this page支持的任何语言。这是该示例中的核心代码(假设最新的工作表命名为'库存'):

FILENAME = 'inventory'
SRC_MIMETYPE = 'application/vnd.google-apps.spreadsheet'
DST_MIMETYPE = 'text/csv'

files = DRIVE.files().list(
    q='name="%s" and mimeType="%s"' % (FILENAME, SRC_MIMETYPE),
    orderBy='modifiedTime desc,name').execute().get('files', [])

if files:
    fn = '%s.csv' % os.path.splitext(files[0]['name'].replace(' ', '_'))[0]
    print('Exporting "%s" as "%s"... ' % (files[0]['name'], fn), end='')
    data = DRIVE.files().export(fileId=files[0]['id'], mimeType=DST_MIMETYPE).execute()
    if data:
        with open(fn, 'wb') as f:
            f.write(data)
        print('DONE')

如果您的工作表很大,则可能需要将其导出为块 - 请参阅email the file contents to yourself with the Gmail API了解如何 。你也可以intro video。如果您通常对Google API不熟悉,我会为您提供一个(有点过时但用户友好的)Google Apps Script。 (之后有2个视频也许有用。)

2)另一种解决方案适用于那些过敏的人。使用API​​,替代方案是DriveApp,浏览器之外的Javascript。与Node一样,它在服务器端运行,但在Google的服务器上运行。使用Apps脚本,您可以使用advanced Drive serviceMailApp访问您的工作表,然后使用GmailAppUrlFetch通过电子邮件发送给自己,或使用{{3}服务将其发送到您选择的某个服务器。要以正常间隔运行它,您需要创建一个脚本time-driven installable trigger。在任何一种情况下,您都不需要自己托管+执行您的应用程序。

PS。 latest Drive API versionv3,但如果您从Apps脚本访问云端硬盘,则会使用v2(尚未弃用)。

答案 3 :(得分:0)

Google docs是一个免费工具,允许用户实时自动保存和协作任何数据。但是,它没有用于安全的Google文档备份或自动实时备份的内置功能。

Google在其terms of service中正式声明:

  

Google以及Google的供应商和分销商将不会   对利润,收入或数据的损失,财务损失或   间接,特殊,结果性,示范性或惩罚性赔偿。

他们的责任挥动不仅适用于个人用途,还适用于商业用途:

  

如果您代表某公司使用我们的服务,则该公司   接受这些条款。它将不受损害,并赔偿Google和   其附属公司…包括因以下原因引起的任何责任或费用   索赔,损失,损害赔偿,诉讼,判决,诉讼费用和   律师费。

如今,除了为Google Docs备份自动化同步到Dropbox之外,还有other options。您对如何自动执行Google文档备份的决定取决于以下几个因素:

  1. 您的数据有多敏感,以及它是用于个人用途还是用于企业用途,即,在数据丢失或违反安全性的情况下,您将需要承担的责任。

  2. 您是否具备编写代码的开发知识 脚本或应用程序使用了wescpy之前概述的任何方法 详细信息:

a)使用Google drive API自动导出Google工作表 b)使用Python在您的服务器上运行cron作业,以CSV格式导出Google表格电子表格,或者 c)使用Google apps script

编写在浏览器外部运行的非API Javascript

如果您需要全面的安全性和数据保护,并且选择了免费的订阅自动Google docs备份解决方案,那么您只需确保代码可靠并提供项目所需的安全性/加密功能即可。