IMPORTDATA 的实际限制似乎低于广告(使用 150 万个单元格测试导入数据)

Real limit of IMPORTDATA seems lower than advertised (testing importdata with 1.5 mln cells)

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

当我尝试导入文件时,我收到一条消息,提示 url 的内容超出了最大大小。 用嵌套的 array_constrain 公式修剪它没有帮助。

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

这是一个包含 50 000 行和 30 列(1 500 000 个单元格)的随机数数组。这是一个 5,61 MB 的文件。 下载link 我用的是: 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

如果没有人提出 google 张公式解决方案,那么您可以简单地使用 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);
}

如果你想更新数据,可以设置定时刷新数据。