You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VBA或C#实现特定结构CSV转XML?求实现示例

将CSV转换为XML:多Level对应全Position的实现方案

需求明确

先拆解你的输入内容:

  • Level集合:1, 2, 49, 50, 51
  • Position集合:8455, 8930, 9405, 9880, 10355, 11015, 11490, 11965, 12440, 12915, 13575, 14050, 14525, 15000
    核心要求:每个Level节点下都包含所有Position值,生成符合结构的XML。

快速实现方案(Python脚本)

用Python写个简单脚本就能搞定,逻辑清晰易修改:

# 输入你的CSV内容
raw_csv = """level;1;2;49;50;51;
Position;8455;8930;9405;9880;10355;11015;11490;11965;12440;12915;13575;14050;14525;15000"""

# 解析CSV行,过滤空内容
lines = [line.strip() for line in raw_csv.split('\n') if line.strip()]

# 提取Level列表
level_items = [item for item in lines[0].split(';') if item and item != 'level']
# 提取Position列表
pos_items = [item for item in lines[1].split(';') if item and item != 'Position']

# 生成XML内容
xml_result = '<?xml version="1.0" encoding="UTF-8"?>\n<root>\n'
for level in level_items:
    xml_result += f'  <level value="{level}">\n'
    for pos in pos_items:
        xml_result += f'    <position>{pos}</position>\n'
    xml_result += '  </level>\n'
xml_result += '</root>'

# 输出结果(也可以写入文件)
print(xml_result)

最终XML示例

运行脚本后会生成如下结构的XML(完整版本会包含所有Level和对应的全部Position):

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <level value="1">
    <position>8455</position>
    <position>8930</position>
    <position>9405</position>
    <position>9880</position>
    <position>10355</position>
    <position>11015</position>
    <position>11490</position>
    <position>11965</position>
    <position>12440</position>
    <position>12915</position>
    <position>13575</position>
    <position>14050</position>
    <position>14525</position>
    <position>15000</position>
  </level>
  <level value="2">
    <position>8455</position>
    <position>8930</position>
    <!-- 剩余Position节点与上方一致,完整输出会全部列出 -->
    <position>15000</position>
  </level>
  <level value="49">
    <!-- 结构同上 -->
  </level>
  <level value="50">
    <!-- 结构同上 -->
  </level>
  <level value="51">
    <!-- 结构同上 -->
  </level>
</root>

无代码替代方案

如果不想写脚本,用Excel也能实现:

  1. 用Power Query的「交叉连接」功能,生成Level和Position的所有组合
  2. 用公式生成XML片段:="<level value="""&A2&"""><position>"&B2&"</position></level>"
  3. 手动拼接XML头部、根节点和所有生成的片段即可

内容的提问来源于stack exchange,提问作者Botez Adrian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:45:42