【问题标题】:How can I automatically import & replace data in a Google Sheet from a CSV that has been uploaded to our Google Drive?如何从已上传到 Google Drive 的 CSV 文件中自动导入和替换 Google Sheet 中的数据?
【发布时间】:2018-08-17 04:46:49
【问题描述】:

我们有一些营销软件可以提取电子邮件营销报告,并每周或每月自动将 CSV 上传到我们的 Google 云端硬盘。我们的报告软件无法自动从 CSV 中提取数据,因此我必须使用 Google 表格。

我怎样才能使新的 CSV 上传到云端硬盘(在此过程中替换旧的 CSV),我的 Google 表格将提取新数据并将其替换为旧数据?

【问题讨论】:

  • 你检查过这个SO post中的解决方案了吗?我想这就是你要找的。​​span>
  • 嗨,Alex,我想知道你是否还有这个问题。如果是这样,我可以帮你解决。通过回复告诉我!

标签: csv google-sheets google-drive-api google-docs


【解决方案1】:

问题不清楚,这意味着您的问题有很多“变量”,因此您可以实施各种解决方案来解决您正在寻找的特定排列。但我会尝试通过一些考虑和建议来回答您的问题:

  1. “[A] 新 CSV 已上传到驱动器(在此过程中替换旧 CSV)。”您确定这正在发生吗?每次您上传 hello.csv 到云端硬盘时,它都会添加一个新的 hello.csv 文件,而不是用相同的名称替换现有文件。您必须有一个知道或可以查找原始 CSV Drive 文件 ID 并明确替换文件内容或上传该文件的新版本的应用程序。
  2. 如果您确实通过这两种技术之一替换了原始文件,请通过 Drive API 跟踪对该文件的更改,这意味着您的应用可以在该文件更新后立即采取行动。请参阅文档中的this page,了解如何检测更改。
  3. OP 中的评论提出了另一个 SO Q&A 的建议,但是该解决方案并未解决 OP 的问题。相反,它将 CSV 文件作为 Google 表格(文件)导入到 Google Drive——CSV 文件永远不会按照 OP 进入 Drive。此外,OP 要求的不仅仅是导入。
  4. 不过,话虽如此,OP 的最终要求是:“[My] Google Sheet 将提取新数据并将其替换为旧数据。”有两种方法可以做到这一点:

a) 最简单/最简单的方法是用 CSV 文件中的内容覆盖工作表中的所有现有数据......旧数据,新数据,没关系。导入新的 CSV 文件并创建新的表格文件后,您可以删除旧的 CSV 和相应的表格。 (新)文件可以与它们的前辈具有相同的名称,这没有问题。为此,构建一个类似于上述 SO Q&A 的解决方案 - CSV 文件已经在云端硬盘中,因此只需创建一个新的表格文件并使用云端硬盘上 CSV 文件中的内容(而不是来自本地文件系统)。

b) 如果您只想要增量,您需要保留旧 CSV 的副本并将其与新 CSV 进行“比较”,并且只覆盖已更改的行,这是一种更复杂的解决方案,并且在您必须使用Google Sheets API(因为它用于电子表格操作,而 Drive API 用于文件操作)。

【讨论】:

  • 回答您的问题 #1,当 CSV 自动上传时,Google Drive 会识别它与旧文件同名并因此替换它,但新 CSV 和旧 CSV 具有不同的文件 ID,即使旧文件被删除,技术上完全不同的文件。
猜你喜欢
  • 2017-05-08
  • 2021-12-10
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
  • 2018-08-25
  • 2015-01-07
  • 2012-11-23
相关资源
最近更新 更多