如何用GAS搜索Google Sheet数组并按条件添加字符?
完整实现代码
function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Sheet1'); // 获取A列最后一行的行号,避免处理全列无效空行 var lastRow = sheet.getLastRow(); // 读取A列所有有效行的数据 var valuesA = sheet.getRange(1, 1, lastRow, 1).getValues(); // 存储B列输出结果 var outputB = []; valuesA.forEach(row => { const originalVal = row[0]; // 仅处理数值类型的内容 if (typeof originalVal === 'number') { // 判断是否为不含小数点的整数 if (Number.isInteger(originalVal)) { // 自定义追加的小数部分,示例为加0.0,可自行修改为任意值,比如0.3、0.9等 const processedVal = originalVal + 0.0; outputB.push([processedVal]); } else { // 本身带小数点的数值直接保留 outputB.push([originalVal]); } } else { // 非数字内容(空值、文本等)直接原样输出 outputB.push([originalVal]); } }); // 批量写入B列 sheet.getRange(1, 2, lastRow, 1).setValues(outputB); }
配置说明
- 自定义小数部分:修改
processedVal = originalVal + 0.0中的0.0即可,比如要给所有整数加.7就改为originalVal + 0.7;如果需要随机加0-9的小数点后一位数,可替换为originalVal + Math.floor(Math.random() * 10) / 10 - 跳过表头:如果A列第一行是表头不需要处理,将
getRange(1, 1, lastRow, 1)中的第一个参数1改为2即可 - 适配文本格式数值:如果A列的数值是文本格式存储的,将整数判断条件
Number.isInteger(originalVal)替换为!String(originalVal).includes('.')即可匹配所有不含小数点的内容 - 固定小数位显示:如果需要强制展示指定位数的小数,可给处理后的值追加
.toFixed(n),n为要保留的小数位数,比如(originalVal + 0.5).toFixed(1)会强制保留1位小数
内容的提问来源于stack exchange,提问作者HÙNG CAO HOÀNG THẾ
相关产品推荐
相关产品推荐

