google-apps-script - 仅从当前和未来日期导入数据
问题描述
我正在尝试导入 Fivethirtyight 数据,但是在尝试从 CSV 文件导入完整链接时,它超出了 google 允许的限制。
所以......我想知道如何过滤以便只导入今天的游戏和未来的日期。从过去的比赛来看,对我来说没有任何价值。
=IMPORTDATA("https://projects.fivethirtyeight.com/soccer-api/club/spi_matches.csv")
IMPORTDATA 不起作用,因为它超出了电子表格的限制,因为它保存了自 2016 年以来的过去游戏数据,因此数据列表变得太大。
我只需要当前日期和未来日期游戏
解决方案
这个答案怎么样?
CSV 数据的大小似乎是 4,183,375 字节,32,101 行和 22 列。那么如何使用 Google Apps 脚本放置数据呢?不幸的是,这个 CSV 不能使用自定义函数放置,因为它很大。
从将 CSV 数据导入 Spreadsheet 的基准来看,当使用 Sheets API 时,可以通过使用Utilities.parseCsv()
和的方法降低流程成本setValues()
。所以在这个答案中,Sheets API 用于将 CSV 值放入电子表格。请认为这只是几个答案之一。
示例脚本 1:
在使用以下脚本之前,请在 Advanced Google services 中启用 Sheets API。
function myFunction() {
var url = "https://projects.fivethirtyeight.com/soccer-api/club/spi_matches.csv";
var data = UrlFetchApp.fetch(url).getContentText();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var resource = {requests: [{pasteData: {
data: data,
coordinate: {sheetId: sheet.getSheetId()},
delimiter: ","
}}]};
Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
}
- 在此脚本中,CSV 数据来自活动工作表的单元格“A1”。
示例脚本 2:
如果您无法使用 Sheets API,您也可以使用以下脚本。
function myFunction() {
var url = "https://projects.fivethirtyeight.com/soccer-api/club/spi_matches.csv";
var data = UrlFetchApp.fetch(url).getContentText();
var csv = Utilities.parseCsv(data);
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1, 1, csv.length, csv[0].length).setValues(csv);
}
参考:
如果这不是你想要的方向,我很抱歉。
推荐阅读
- mysql - MySQL:如何制作拒绝未成年员工的触发器?
- python - Django过滤器内的条件
- python - 要在 Sagemaker 中使用的 tf.distribute.cluster_resolver.TPUClusterResolver(tpu_name) 的替代方案?
- android - Flutter 应用程序未在任何编辑器上运行
- java - Pivotal/tap 在 brew 上失败
- javascript - querySelectorAll 替代 vuejs nuxtjs
- python - 访问列表中的特定按钮
- react-native - React Native 有条件地设置状态
- javascript - 将 jinja2 模板代码添加到 javascript innerHTML
- c++ - constexpr 使用标准库算法