Google apps script 使用谷歌应用程序脚本替换字符
我有一个列,它是一个字符串格式的日期Google apps script 使用谷歌应用程序脚本替换字符,google-apps-script,Google Apps Script,我有一个列,它是一个字符串格式的日期 2020-02-23T12:14:06+0000 我想去掉T,用空格替换,也就是完全去掉最后一部分(+0000) 我试过这个 var A1 = CONTENT.getRange("B:B").getValue(); var A1String = A1.toString().replace("T*", ""); 但它不起作用 有什么想法吗 这是我想将其合并到的原始脚本 var spreadsheet = SpreadsheetApp.getAct
2020-02-23T12:14:06+0000
我想去掉T,用空格替换,也就是完全去掉最后一部分(+0000)
我试过这个
var A1 = CONTENT.getRange("B:B").getValue();
var A1String = A1.toString().replace("T*", "");
但它不起作用
有什么想法吗
这是我想将其合并到的原始脚本
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('sheetname');
var range = sheet.getRange("A:C");
var response = UrlFetchApp.fetch("API CALL");
var dataAll = JSON.parse(response.getContentText());
var dataSet = dataAll.data;
var rows = [],
data;
for (i = 0; i < dataSet.length; i++) {
data = dataSet[i];
rows.push([new Date(),data.created_time,data.message,data.permalink_url,
data.reactions.summary.total_count
,data.comments.summary.total_count,data.insights.data[1].values[0].value,data.insights.data[2].values[0].value,data.insights.data[3].values[0].value,data.insights.data[0].values[0].value['link clicks'],data.insights.data[0].values[0].value['photo view'],data.insights.data[0].values[0].value['other clicks'],data.insights.data[0].values[0].value['video play'],data.insights.data[4].values[0].value,data.insights.data[5].values[0].value,data.insights.data[6].values[0].value,data.insights.data[7].values[0].value["like"],data.insights.data[7].values[0].value["love"],data.insights.data[7].values[0].value["wow"],data.insights.data[7].values[0].value["haha"],data.insights.data[7].values[0].value["sorry"]]); //your JSON entities here
}
Logger.log(rows)
//sheet.getRange(getlastRow() + 1, 1, rows.length, 2).setValues(rows);
sheet.getRange(sheet.getLastRow() + 1, 1, rows.length, 22).setValues(rows);
/**
* Removes duplicate rows from the current sheet.
*/
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheetname');
var data = sheet.getDataRange().getValues();
data.reverse(); //reverses the row order.
var last=sheet.getLastRow();
var newData = new Array();
for(i in data){
//Logger.log(i);
var row = data[i];
//Logger.log(row[5]);
var duplicate = false;
for(j in newData){
//Logger.log(newData[j][3]);
if(row[3] == newData[j][3]){
duplicate = true;
}
}
if(!duplicate){
newData.push(row);
}
}
newData.reverse(); // reverses your data back to its original order.
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
//
//
var spreadsheet=SpreadsheetApp.getActiveSpreadsheet();
var sheet=spreadsheet.getSheetByName('sheetname');
var范围=sheet.getRange(“A:C”);
var response=UrlFetchApp.fetch(“API调用”);
var dataAll=JSON.parse(response.getContentText());
var数据集=dataAll.data;
变量行=[],
数据;
对于(i=0;i
如果要始终删除相同的内容(即“T”和“+0000”),可以使用以下脚本:
获得的结果:2020-02-23 12:14:06
代码:
// ---------- Menu ----------
// Add a Menu named Format Date to run the script
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Format Date')
.addItem('Go!', 'FormatDate')
.addToUi();
}
function FormatDate() {
var ss = SpreadsheetApp.getActiveSheet(),
array = [];
ss.getRange("B2:B") // Choose the range here
.getValues()
.forEach(function (dates) {
// "T" is replaced with a space: " " and "+0000" is replace with empty:""
[["T", " "], ["+0000", ""]]
.map(function (a, i) {
return dates = replace(dates.toString(), a[0], a[1])
})
array.push([dates])
});
// You can set a different column to write the data
// Or keep B2:B to overwrite your data
ss.getRange("B2:B")
.setValues(array)
}
function replace(d, a, r) {
return d.indexOf(a) > -1 ? d.split(a)
.join(r) : d;
}
Credit:很久以前受JPV代码启发,提出了一个不同的问题如果您想删除相同的内容(即“T”和“+0000”),可以使用以下脚本: 获得的结果:
2020-02-23 12:14:06
代码:
// ---------- Menu ----------
// Add a Menu named Format Date to run the script
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Format Date')
.addItem('Go!', 'FormatDate')
.addToUi();
}
function FormatDate() {
var ss = SpreadsheetApp.getActiveSheet(),
array = [];
ss.getRange("B2:B") // Choose the range here
.getValues()
.forEach(function (dates) {
// "T" is replaced with a space: " " and "+0000" is replace with empty:""
[["T", " "], ["+0000", ""]]
.map(function (a, i) {
return dates = replace(dates.toString(), a[0], a[1])
})
array.push([dates])
});
// You can set a different column to write the data
// Or keep B2:B to overwrite your data
ss.getRange("B2:B")
.setValues(array)
}
function replace(d, a, r) {
return d.indexOf(a) > -1 ? d.split(a)
.join(r) : d;
}
Credit:很久以前受JPV的代码启发提出了一个不同的问题使用
Textfinder
类。有关官方文档,请参阅。使用Textfinder
类。有关官方文档,请参阅。嘿,谢谢你的回答。它是一个函数,但当我尝试将它合并到我的原始脚本中时,我得到了它“未定义替换"。你能告诉我如何合并它吗?我将在我的原始帖子上附上我脚本的其余部分。@NabnubYou可以一个接一个地调用函数,需要时就调用这个函数。如果函数应该在特定的工作表上运行,请使用getSheetByName
进行必要的更改。该函数是必需的每次第一个函数运行时,除了第一个函数之外,我似乎找不到一个方法来运行它。但是我得到了我提到的错误。嗨,如果解决方案确实回答了你最初的问题,请考虑通过一个正确的答案来勾选它。明智的是,你不会学到太多。@Andreas出于文档目的,如果可以,请接受答案(✓) 这对你很有帮助-它也可以帮助将来有同样问题的其他人找到解决方案:)嘿,谢谢你的回答。它可以作为函数工作,但当我尝试将它合并到我的原始脚本中时,我得到“替换未定义”。你能告诉我如何合并它吗?我将在我的原始帖子上附上我脚本的其余部分。@NabnubYou可以一个接一个地调用函数,需要时就调用这个函数。如果函数应该在特定的工作表上运行,请使用getSheetByName
进行必要的更改。该函数是必需的每次第一个函数运行时,除了第一个函数之外,我似乎找不到一个方法来运行它。但是我得到了我提到的错误。嗨,如果解决方案确实回答了你最初的问题,请考虑通过一个正确的答案来勾选它。明智的是,你不会学到太多。@Andreas出于文档目的,如果可以,请接受答案(✓) 这对你很有帮助——它还可以帮助将来遇到同样问题的其他人找到解决方案:)