Excel:将 'snake_case' 转成 'PascalCase' 或 'camelCase'
如何在 Excel 中将形如 ‘delivery_id’ 的字段变成 PascalCase 形式的 ‘DeliveryId’ 或者 camelCase 的 ‘deliveryId’ 呢?这是在我为 MyBatis Generator 创建配置文件时产生的一个想法。按照规范,数据库中的字段名是 snake_case 形式的,而 Java 中字段名称应该是 camelCase 形式的,那么应该要有一个简单的公式,将 snake_case 直接转为 camelCase(或者 PascalCase)(对,就是懒 Orz)。
tl;dr (太长不看)版:
=LOWER(LEFT(SUBSTITUTE(PROPER(A2), "_", ""), 1)) & RIGHT(SUBSTITUTE(PROPER(A2), "_", ""), LEN(SUBSTITUTE(PROPER(A2), "_", "")) - 1)
【假设 A2 是数据库字段值】
公式解析:
- 从数据库里读取
tb_sample
的表结构:
desc tb_sample;
- 将列名复制到 Excel 的 A 列:
- B 列使用
PROPER
函数,将英文单词里首字母变成大写。
PROPER(A2)
- C 列使用
SUBSTITUTE
函数,删掉掉 B 列的_
字符。这就是 PascalCase 了。
=SUBSTITUTE(B2, "_", "")
- 如果需要变为 camelCase,只需要对 C 列,多做一个转换,将字符串首字母变为小写,即可:
=LOWER(LEFT(C2, 1)) & RIGHT(C2, LEN(C2) - 1)
所以最终的公式可以写为:
=LOWER(LEFT(SUBSTITUTE(PROPER(A2), "_", ""), 1)) & RIGHT(SUBSTITUTE(PROPER(A2), "_", ""), LEN(SUBSTITUTE(PROPER(A2), "_", "")) - 1)