You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

带XSD架构的XML导入Power BI/Excel 2016失败,求解决方法

解决XML导入Power BI/Excel 2016的架构忽略与格式问题

我之前处理过类似的XML导入难题,结合微软已经确认的这个Bug,给你几个实用的解决办法,帮你顺利把数据导入Power BI或者Excel 2016:

方法1:手动在Power Query中调整数据类型

Power BI和Excel 2016都是通过Power Query来处理XML导入的,虽然它会忽略XSD架构,但我们可以手动强制设置列类型:

  • 导入XML后,点击编辑查询进入Power Query编辑器
  • 选中需要调整的列(比如数字格式的列),点击顶部的数据类型下拉菜单,选择对应的类型(比如整数小数
  • 注意你的西班牙语区域设置:西班牙语中小数点是逗号,千分位是句号,设置类型时可以选择使用区域设置的小数,确保格式识别正确

方法2:用Power Query脚本强制读取XSD架构

可以通过M语言脚本手动调用XSD架构来映射数据,避免自动识别的错误。示例代码如下:

let
    // 加载XML源(在线链接用Web.Contents,本地文件用File.Contents)
    Source = Xml.Document(Web.Contents("https://resourcescrono.s3-eu-west-1.amazonaws.com/demo-biblio.xml")),
    // 读取XSD架构
    Schema = Xml.Schema(Source),
    // 提取数据表格
    DataTable = Table.FromRecords(Source{0}[Table][Rows][Row]),
    // 根据XSD定义手动指定列类型(替换成你的实际列名和类型)
    SetColumnTypes = Table.TransformColumnTypes(DataTable, {
        {"ID", Int64.Type},
        {"Titulo", type text},
        {"Precio", Currency.Type}
    })
in
    SetColumnTypes
  • 把代码中的列名和类型替换成你XML里的实际内容
  • 在Power Query编辑器中点击高级编辑器,替换默认代码即可

方法3:先转成CSV再导入(适合快速解决)

既然旧版Excel能正常识别XSD架构,我们可以借这个中转一下:

  • 用Excel 2003(或能正常导入的旧版本)打开XML文件
  • 把文件另存为CSV格式,注意选择西班牙语区域的分隔符(通常是分号;
  • 再将CSV文件导入Power BI/Excel 2016,此时系统能正确识别数字格式

补充:微软已经确认这是一个官方Bug,Excel和Power BI应该遵循XSD架构来识别数据类型,但目前还没有修复,所以上述临时方案是最靠谱的选择。

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

火山引擎 最新活动