英文:
Read a CSV from GitHub to Google sheets
问题
类似于这个,我希望可以直接将存储在GitHub仓库中的CSV格式数据读入Google表格。
相关数据示例在这里。当我告诉Google表格从这个URL导入(原始)数据时,它找不到匹配的文件:。
是否可以简单地实现直接导入,或者是否必须使用API来实现呢?
英文:
Similar to this, I wish to read data stored in csv format in a GitHub repository directly into Google sheets.
An example of the data in question is here. When I tell google sheets to import the (raw) data from this url, it finds no matching file: .
Can a direct import be achieved this simply, or does it necessarily involve using an API?
答案1
得分: 3
在你的情况下,以下模式如何?
模式1:
在这种模式中,使用IMPORTDATA
函数。一个示例公式如下。请将该公式放入电子表格的一个单元格中。
=IMPORTDATA("https://raw.githubusercontent.com/emagar/elecRetrns/master/data/pred1964-on.csv")
模式2:
在这种模式中,使用Google Apps脚本。请将以下脚本复制粘贴到电子表格的脚本编辑器中,并运行该脚本。通过这样,检索到的CSV数据将放入活动工作表中。
function myFunction() {
// 检索CSV数据并解析它。
const url = "https://raw.githubusercontent.com/emagar/elecRetrns/master/data/pred1964-on.csv";
const str = UrlFetchApp.fetch(url).getContentText();
const ar = Utilities.parseCsv(str);
// 将值放入活动工作表中。
const sheet = SpreadsheetApp.getActiveSheet(); // 或者使用SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
sheet.getRange(1, 1, ar.length, ar[0].length).setValues(ar);
}
参考资料:
英文:
In your situation, how about the following patterns?
Pattern 1:
In this pattern, IMPORTDATA
is used. A sample formula is as follows. Please put this formula into a cell of Spreadsheet.
=IMPORTDATA("https://raw.githubusercontent.com/emagar/elecRetrns/master/data/pred1964-on.csv")
Pattern 2:
In this pattern, Google Apps Script is used. Please copy and paste the following script to the script editor of Spreadsheet and run the script. By this, the retrieved CSV data is put into the active sheet.
function myFunction() {
// Retrieve CSV data and parse it.
const url = "https://raw.githubusercontent.com/emagar/elecRetrns/master/data/pred1964-on.csv";
const str = UrlFetchApp.fetch(url).getContentText();
const ar = Utilities.parseCsv(str);
// Put the values into the active sheet.
const sheet = SpreadsheetApp.getActiveSheet(); // or SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
sheet.getRange(1, 1, ar.length, ar[0].length).setValues(ar);
}
References:
答案2
得分: 1
以下是翻译好的部分:
如果您只需执行一次,这可能会有所帮助 -
您尝试过以下步骤吗:
- 从此处复制并粘贴数据到记事本
- 将记事本文件保存为xyz.csv
英文:
If you have to do that only once, this can be helpful -
Have you tried the following steps:
- Copy and paste the data from Here to notepad
- Save the notepad file as xyz.csv
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论