关于本文
本文由利用生成式 AI 的自动化工作流创建。我们查阅了 Microsoft Learn 的 Office Scripts Range API,并将其整理为批量整理 Excel 表格内字符串的实用技巧。验证状态:📘 已确认官方规范・已实现 Office Scripts 示例・未在目标 Microsoft 365 环境中进行实机验证
批量整理 Excel 前后空白与全角空格 — 用 Office Scripts 清理格式不一致问题
从其他人那里收集到的 Excel 文件中,常常会混杂各种格式不一致的空白,例如“东京”、“ 东京”、“东京 ”、“东京 本社”。虽然肉眼看起来一样,但在汇总和匹配时可能会被视为不同的字符串。
使用 Office Scripts,您可以编写一段简短的代码,仅遍历并整理表格中的字符串。
仅整理字符串
// 将单元格的值作为字符串取出。
const before = String(values[row][col]);
// 1) 将全角空格转换为半角
// 2) 将连续的空白缩减为单个
// 3) 删除开头和结尾的空白
const after = before
.replace(/u3000/g, " ")
.replace(/s+/g, " ")
.trim();
// 仅将值发生变化的单元格写回。
// 这是为了避免重写没有发生变化的单元格。
if (before !== after) {
range.getCell(row, col).setValue(after);
}
通过这三个步骤,将全角空格转换为半角,将连续空白合并为一个,并删除前后空白。
不触碰公式单元格
如果使用 setValues() 重写整个表格,会有将公式单元格替换为静态值的风险。因此,在完整版中,我们还会确认 getFormulas(),并跳过包含公式的单元格。
这是在“代码简短”和“保证安全不破坏”之间,优先选择后者的部分。
适用于哪些场景?
部门名称、姓名格式不一致的清理
导入 CSV 后的空白清理
VLOOKUP / XLOOKUP 之前的前期处理
查重之前的标准化处理
传递给 Power Automate 之前的格式整理
flowchart LR
A[Excel Table] --> B[文字列セルだけ取得]
B --> C[全角/連続/前後空白を正規化]
C --> D[変更セルだけ書き戻す]

コメント