如何通过Google Apps Script按分隔符拆分字符串至电子表格两列?
拆分ESP32传输的姓名至Google Sheets不同列
核心思路是用JavaScript的split()方法将「名字,姓氏」格式的字符串分割开,再分别写入B、C列,以下是具体实现步骤和代码示例:
1. 分割姓名字符串
通过逗号分割name变量,同时用trim()处理可能存在的前后空格,避免列中出现多余空格:
// 假设name是从ESP32接收的字符串,格式如"Firstname,Lastname"或"Firstname, Lastname" const nameSegments = name.split(',').map(segment => segment.trim()); const firstName = nameSegments[0]; // 提取名字部分 const lastName = nameSegments[1]; // 提取姓氏部分
2. 修改表格写入逻辑
将原本写入B列的完整姓名,替换为拆分后的名字(B列)和姓氏(C列)。以下是完整的doPost函数示例(适配接收ESP32 POST请求的场景):
function doPost(e) { try { // 目标工作表,替换为你的表名 const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DataSheet'); // 解析ESP32传来的JSON数据 const requestData = JSON.parse(e.postData.contents); // 处理姓名拆分 const name = requestData.name; const nameSegments = name.split(',').map(s => s.trim()); let firstName = name; let lastName = ''; // 校验格式是否正确 if (nameSegments.length === 2) { firstName = nameSegments[0]; lastName = nameSegments[1]; } else { lastName = '格式错误'; // 格式异常时标记 } // 写入数据:A列=时间,B列=名字,C列=姓氏,D列=其他示例数据(如温度) targetSheet.appendRow([ new Date(), firstName, lastName, requestData.temperature // 替换为你实际接收的其他字段 ]); return ContentService.createTextOutput(JSON.stringify({status: 'ok'})) .setMimeType(ContentService.MimeType.JSON); } catch (err) { return ContentService.createTextOutput(JSON.stringify({status: 'error', msg: err.message})) .setMimeType(ContentService.MimeType.JSON); } }
3. 可选:格式异常处理
如果ESP32传来的姓名格式不符合「名字,姓氏」,代码会将完整姓名写入B列,C列标记为"格式错误",你可以根据需求调整异常处理逻辑(比如跳过写入、写入备注等)。
内容的提问来源于stack exchange,提问作者Brieanna Smith G11
相关产品推荐
相关产品推荐

