如何避免Azure Logic App将CSV列名连字符转换为_x002d_?
解决Azure Logic App导出CSV时列名连字符被转义的问题
方法1:查询时直接指定列别名(适合少量列)
在数据源查询步骤(比如SQL查询)里,给带连字符的列显式设置别名,用引号或方括号包裹住原列名,示例SQL:
SELECT [data-01] AS "data-01", [vh-d] AS "vh-d" FROM your_target_table
这样Logic App拿到的列名就是你要的格式,导出CSV时不会触发转义。
方法2:用Compose批量替换转义字符(适合大量列)
如果列太多不想改查询,就在导出CSV前加个Compose步骤处理数据:
- 先通过
Parse JSON解析查询返回的JSON数据,确保能识别所有字段。 - 在Compose里用
replace函数把列名里的_x002d_替换回-,表达式如下:@replace(string(body('Parse_JSON')), '_x002d_', '-') - 把Compose的输出作为CSV导出的数据源,生成的CSV列名就会保留原连字符。
方法3:手动拼接CSV(彻底绕过内置转换)
要是内置CSV转换死活不听话,就自己拼CSV内容:
- 先提取所有列名,用
join函数拼成表头:@join(variables('column_names'), ',') - 遍历数据行,把每行的字段值用逗号分隔拼接,注意含逗号的字段要加双引号包裹
- 最后把表头和所有行拼接成完整的CSV文本,直接作为邮件附件发送,完全掌控列名格式
内容的提问来源于stack exchange,提问作者devram
相关产品推荐
相关产品推荐

