如何在Google Apps Script中实现类似Google Sheets LEFT()的字符提取功能
Google Apps Script 截取字符串解决方案
你可以直接用JavaScript原生的字符串方法实现和Google Sheets LEFT() / RIGHT() 等价的效果,针对你去掉末尾7位字符的需求,有两种常用实现方式:
方案1:使用slice()方法(最推荐)
slice()支持传入正负索引,负索引代表从字符串末尾开始计数,直接截取到倒数第7位之前的内容即可:
// 单字符串用法示例 const str1 = "ADGGGGGDH--12/01"; const result1 = str1.slice(0, -7); // 输出 ADGGGGGDH const str2 = "VNS-VNSBCAAAMVNC--02/07"; const result2 = str2.slice(0, -7); // 输出 VNS-VNSBCAAAMVNC
如果要封装成和Google Sheets用法一致的自定义LEFT函数,可以这么写:
function LEFT(str, numChars) { return str.slice(0, numChars); } // 对应你的需求,也可以直接调用LEFT(str, str.length -7)实现同等效果
方案2:使用substring()方法
和slice()逻辑类似,只是不支持负索引,需要先计算字符串总长度再截取:
const str = "ADGGGGGDH--12/01"; const result = str.substring(0, str.length -7);
批量处理Google Sheets数据示例
如果你需要直接处理表格中选中范围的所有单元格内容,可以直接用这段完整脚本:
function removeLast7Chars() { const sheet = SpreadsheetApp.getActiveSheet(); const range = sheet.getActiveRange(); const values = range.getValues(); const processedValues = values.map(row => { return row.map(cell => { // 仅处理长度大于等于7的字符串类型内容 if (typeof cell === 'string' && cell.length >= 7) { return cell.slice(0, -7); } return cell; }) }); range.setValues(processedValues); }
运行函数前先选中你需要处理的单元格范围,运行后会自动批量替换内容。
内容的提问来源于stack exchange,提问作者Leti
相关产品推荐
相关产品推荐

