Google apps script 解析从html获取的数据
我正试图从美联储获得一些数据并粘贴到我的电子表格中 这是我的代码Google apps script 解析从html获取的数据,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正试图从美联储获得一些数据并粘贴到我的电子表格中 这是我的代码 function myFunction() { var response = UrlFetchApp.fetch("http://research.stlouisfed.org/fred2/data/TWEXMANL.txt"); a=response.getContentText(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var InputSheet = ss.get
function myFunction() {
var response = UrlFetchApp.fetch("http://research.stlouisfed.org/fred2/data/TWEXMANL.txt");
a=response.getContentText();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var InputSheet = ss.getSheetByName("Sheet5");
InputSheet.getRange("E5:E5").setValue(a);
}
此代码将所有输出粘贴到E5中。我只想将“日期”和“值”后面的数据粘贴到两列中
有人能帮我吗?我相信这对你们来说很简单
谢谢。使用一点字符串操作,这变得非常简单:
function myFunction() {
var response = UrlFetchApp.fetch("http://research.stlouisfed.org/fred2/data/TWEXMANL.txt");
a=response.getContentText();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var InputSheet = ss.getSheetByName("Sheet1");
//Slice off the text above the columns
var allData = a.slice(a.indexOf("DATE VALUE"));
//Trim spaces between date and value to just 1 space for splitting
allData = allData.replace(/ +/g, " ");
//Split the text so each line is a row
var splitData = allData.split("\n");
//For some reason, there is an extra line, so remove it
splitData.pop();
//Split each row so data is one column and value is another
for(var i = 0; i < splitData.length; i += 1) {
splitData[i] = splitData[i].split(" ");
}
//Save to spreadsheet. +4 because you start at E5. Note the change to F on the right.
InputSheet.getRange("E5:F" + (splitData.length + 4)).setValues(splitData);
}
函数myFunction(){
var response=UrlFetchApp.fetch(“http://research.stlouisfed.org/fred2/data/TWEXMANL.txt");
a=response.getContentText();
var ss=SpreadsheetApp.getActiveSpreadsheet();
var InputSheet=ss.getSheetByName(“Sheet1”);
//切掉列上方的文本
var allData=a.slice(a.indexOf(“日期值”);
//将日期和值之间的空格修剪为仅1个空格以进行拆分
allData=allData.replace(/+/g,“”);
//拆分文本,使每行成为一行
var splitData=allData.split(“\n”);
//由于某些原因,有一个额外的行,所以删除它
splitData.pop();
//拆分每行,使数据为一列,值为另一列
对于(变量i=0;i
我先把介绍文字删掉。然后,我将字符串拆分为包含数据行的数组。我也将每一行(一个字符串)拆分为一个数组。这给了我一个数组,我可以在底部使用setValues()。因为这不仅仅是一个单元格,我必须指定确切的宽度和高度,否则它会失败
如果您想查看其中任何一点的数据,我建议Logger.log(splitData)代码>哦,如果您不想要日期/值行,因为您有自己的标题,请在弹出之前或之后添加splitData=splitData.slice(1)
。这将删除第一行。嗨,弗雷德里克。我还有一个问题。我现在正在做的其他事情不需要粘贴到电子表格中,但我需要进一步拆分数组。我想了一些类似于a=splitData[I].split(“”)的东西,但是这不起作用。我希望能够处理像splitData[0][3]这样的每个元素。现在这只给了我第一个元素的第四个字符。不起作用的原因是第一个split
返回一个数组,第二个split
尝试拆分它。如果将所有“”替换为“”,则可以按“”拆分,以获得所需的结果替换(//g,“,”)。拆分(“,”
将用逗号替换所有空格,然后用逗号拆分。