Google App Script生成唯一RefNo无法输出带前导零的正确编号
解决方案
核心逻辑
你遇到的前导零丢失问题本质是:存储在Ref表的序号在做数值运算、字符串拼接时,文本格式的前导零会被自动忽略。最优处理方案是Ref表仅存储纯数字的递增序号,仅在生成最终展示用的工单编号时统一补全前导零,避免类型转换异常。
代码修改
只需调整NewRef函数的编号生成逻辑即可,使用padStart方法实现4位长度的前导零补全:
function NewRef(){ // 获取最新的纯数字序号 var lr = GetLatest(); // 将序号转为字符串,不足4位时在开头补0 var formattedSerial = String(lr).padStart(4, '0'); // 拼接前缀T生成最终编号 return "T" + formattedSerial; }
兼容写法
如果运行环境不支持ES6的padStart方法,可改用传统字符串截取的方式实现相同效果:
function NewRef(){ var lr = GetLatest(); // 先拼接足够多的前导零,再截取最后4位 var formattedSerial = ("000" + lr).slice(-4); return "T" + formattedSerial; }
配套优化
建议将Ref表A1单元格的格式调整为数字格式,初始值设为1即可,无需存储带前导零的文本,避免后续gl + 1运算时出现类型错误。
内容的提问来源于stack exchange,提问作者Madsam
相关产品推荐
相关产品推荐

