Excel单个单元格拼接多列数据生成AWS安全组授权命令方法
Excel生成AWS安全组授权命令的公式实现
核心逻辑
咱们要做的就是把固定单元格的内容(A1目标安全组ID、B1协议、C1源安全组ID),和E、G、I、K、M列的端口+对应描述,拼成符合要求的AWS命令:
- 用
TEXTJOIN把多个端口规则块拼接起来,空端口会自动跳过,不会生成无效内容 - Excel里要输出双引号,得用两个
""转义,不然公式会报错
完整公式(直接复制到O1单元格)
="aws ec2 authorize-security-group-ingress --group-id "&A1&" --ip-permissions "&TEXTJOIN(" ", TRUE, "IpProtocol="&B1&",FromPort="&E1&",ToPort="&E1&",UserIdGroupPairs=""[{GroupId="&C1&",Description="&F1&"}]""", "IpProtocol="&B1&",FromPort="&G1&",ToPort="&G1&",UserIdGroupPairs=""[{GroupId="&C1&",Description="&H1&"}]""", "IpProtocol="&B1&",FromPort="&I1&",ToPort="&I1&",UserIdGroupPairs=""[{GroupId="&C1&",Description="&J1&"}]""", "IpProtocol="&B1&",FromPort="&K1&",ToPort="&K1&",UserIdGroupPairs=""[{GroupId="&C1&",Description="&L1&"}]""", "IpProtocol="&B1&",FromPort="&M1&",ToPort="&M1&",UserIdGroupPairs=""[{GroupId="&C1&",Description="&N1&"}]"" )
细节说明
- 前缀部分:固定拼接命令开头和目标安全组ID,对应示例里的
--group-id sg-0bd7ffbc0d41840f6 - 单个规则块:每个端口对应一段规则,比如E1是3306、F1是描述,就会生成:
IpProtocol=tcp,FromPort=3306,ToPort=3306,UserIdGroupPairs="[{GroupId=sg-0a7eaebc18bdad397,Description=Allow MySQL to communicate with Tomcat application}]" - 拼接规则:
TEXTJOIN(" ", TRUE, ...)用空格把所有非空的规则块连起来,要是某列(比如M1)没端口,就自动跳过这段,不会生成无效内容
按需调整
- 要是你的描述文本不在F、H、J、L、N列,把公式里的
F1、H1这些改成实际的描述单元格就行 - 要是需要端口范围(比如FromPort=80,ToPort=8080),把
FromPort="&E1&",ToPort="&E1&"改成FromPort="&E1&",ToPort="&[对应结束端口的单元格]"
内容的提问来源于stack exchange,提问作者Ishan Sharma
相关产品推荐
相关产品推荐

