gpt4 book ai didi

javascript - trim 和清理谷歌脚本

转载 作者:行者123 更新时间:2023-11-30 11:20:21 26 4
gpt4 key购买 nike

我可以用下面的脚本 trim 我的爸爸

但是有没有一种方法可以使用类似于 VBA 中的清理的 Google 脚本来清理 Google 中的数据?

即删除所有非打印字符

我无法找到替换从其他来源复制并粘贴到 GS 的数据

谢谢

function trimSpacesSHT(shtName) {
var sheet = SpreadsheetApp.getActive().getSheetByName(shtName);
var activeRange = sheet.getDataRange();

// Read Height and Width only once
var maxHeight = activeRange.getHeight();
var maxWidth = activeRange.getWidth();

// Read all values and formulas at once
var rangeValues = activeRange.getValues();
// iterate through all cells in the selected range
for (var cellRow = 0; cellRow < maxHeight; cellRow++) {
for (var cellColumn = 0; cellColumn < maxWidth; cellColumn++) {
rangeValues[cellRow][cellColumn] = rangeValues[cellRow][cellColumn].toString().trim().replace(/\s(?=\s)/g,'');
}
}
// Write back all values at once
activeRange.setValues(rangeValues);
}

最佳答案

VBA的CLEAN方法去除0-31, 127, 129, 141, 143, 144, 157的字符。您想使用 Google Apps 脚本实现这一目标吗?如果我的理解是正确的,这个示例脚本怎么样?因为我对这个方法很感兴趣,想研究这个,所以我创造了这个。

示例脚本:

function cleanForGAS(str) {
if (typeof str == "string") {
var escaped = escape(str.trim());
for (var i = 0; i <= 31; i++) {
var s = i.toString(16);
var re = new RegExp("%" + (s.length == 1 ? "0" + s : s).toUpperCase(), "g");
escaped = escaped.replace(re, "");
}
var remove = ["%7F", "%81", "%8D", "%8F", "%90", "%9D"];
remove.forEach(function(e) {
var re = new RegExp(e, "g");
escaped = escaped.replace(re, "");
});
return unescape(escaped).trim();
} else {
return str;
}
}

用法:

当您使用它时,请修改您的脚本。

发件人:

rangeValues[cellRow][cellColumn] = rangeValues[cellRow][cellColumn].toString().trim().replace(/\s(?=\s)/g,'');

收件人:

rangeValues[cellRow][cellColumn] = cleanForGAS(rangeValues[cellRow][cellColumn].toString());

引用:

如果我误解了你的问题,我很抱歉。

关于javascript - trim 和清理谷歌脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50051358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com