【问题标题】:Real limit of IMPORTDATA seems lower than advertised (testing importdata with 1.5 mln cells)IMPORTDATA 的实际限制似乎低于宣传的(用 150 万个单元格测试 importdata)
【发布时间】:2021-01-27 10:49:10
【问题描述】:

我尝试从位于我的 Google 云端硬盘上的 .csv 文件导入数据。这是一个 csv 文件,带有 ;作为分隔符。 文件大小约为 4 MB。 46 列和 8770 行。可以手动将其上传到我的电子表格,但我需要通过 importdata 或类似功能连接并更新。

当我尝试导入文件时,我收到一条消息,指出 url 的内容超过了最大大小。 使用嵌套的 array_constrain 公式对其进行修剪没有帮助。

我的电子表格包含一些敏感数据,所以我决定制作一个虚拟 csv 来说明问题,看看你是否有同样的问题:

这是一个由 50 000 行和 30 列(1 500 000 个单元格)组成的随机数数组。这是一个 5,61 MB 的文件。 我使用的下载链接是: https://drive.google.com/uc?export=download&id=19MBtGO-O7PV4NNojLAcxm-Pg8ZwjFXI8

文件位于此处: https://drive.google.com/file/d/19MBtGO-O7PV4NNojLAcxm-Pg8ZwjFXI8/view?usp=sharing

当我尝试使用 IMPORTDATA 引用它时,它告诉它超出大小,但可以通过菜单手动上传。

你可以在这里玩这个文件: https://docs.google.com/spreadsheets/d/16FprlLCST98CpB09CvtTK_CeSd76uUCsRRHWBF3bbMY/edit?usp=sharing

根据这个讨论,它应该最多可以工作 2 000 000 个单元格: https://webapps.stackexchange.com/questions/10824/whats-the-biggest-csv-file-you-can-import-into-a-google-sheets

【问题讨论】:

  • 是的,我做过(并在我的帖子中提到过),但这没有帮助。
  • 这似乎是与可以通过IMPORTDATA 导入的大小有关的限制。这似乎没有记录在案。我建议您通过表格编辑器上的Help > Sheet help 报告此问题。对于解决方法,我认为Mario's answer 是合适的。

标签: csv google-apps-script google-sheets google-drive-api


【解决方案1】:

如果没有人提出谷歌表格公式解决方案,那么您可以简单地使用Utilities.parseCsv(csv)

function getBigCsv() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('Arkusz2');
  const url = 'https://drive.google.com/uc?export=download&id=19MBtGO-O7PV4NNojLAcxm-Pg8ZwjFXI8';
  const csv = UrlFetchApp.fetch(url);
  const data = Utilities.parseCsv(csv);
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}

如果你想更新数据,你可以设置一个时间触发器来刷新数据。

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多