批量整理 Excel 前后空白与全角空格 — 用 Office Scripts 清理格式不一致问题

Microsoft 365・Azureカテゴリを表すパンダのイラスト Microsoft 365・Azure

关于本文
本文由利用生成式 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[変更セルだけ書き戻す]

GitHub 示例

官方信息与一手资料

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月23日

  • 変更Office Scriptsのコードブロック内にあるUnicodeエスケープ文字(全角スペース)の記述を正しい形式に修正しました。

文档信息

文章??
批量整理 Excel 前后空白与全角空格 — 用 Office Scripts 清理格式不一致问题
?布日期
更新日期
来源
https://papanda925.com/?p=15228&lang=zh

?可: ?于本站?有相??利的正文及原??表,除非?有?明,可依据 CC BY 4.0 使用。本文可能包含使用生成式AI?建或??的内容。若代??有?可声明,或?接的GitHub???定了?可,?代?以??可?准。引用内容、第三方?料、?片及商?不在本?可范?内。 使用政策

标题和URL已复制