You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 14:36:19