Business Central:如何在Power Query中获取本地化(丹麦语)列名?
解决Power Query从Business Central获取丹麦语列名的问题
方案1:通过OData元数据提取本地化列名映射
Business Central的OData API会将丹麦语列名存放在元数据的displayName属性中,你可以通过以下步骤自动替换列名:
- 在Power Query中打开高级编辑器,替换原有查询逻辑,先获取实体元数据,再加载数据并批量重命名:
// 替换以下占位符为你的实例信息 bcInstanceUrl = "https://your-business-central-instance/api/v2.0", companyId = "your-company-guid", entityName = "your-target-entity", // 获取带丹麦语元数据的响应 metadataResponse = Web.Contents( Text.Combine({bcInstanceUrl, "/companies(", companyId, ")/", entityName, "/$metadata"}), [Headers=[#"Accept-Language"="da-DK", #"Accept"="application/json;odata.metadata=full"]] ), metadata = Json.Document(metadataResponse), // 构建字段名与丹麦语显示名的映射表 fieldMappings = List.Transform(metadata{"value"}, each {_{"name"}, _{"displayName"}}), // 加载原始数据 dataResponse = Web.Contents( Text.Combine({bcInstanceUrl, "/companies(", companyId, ")/", entityName}), [Headers=[#"Accept-Language"="da-DK"]] ), dataSource = Json.Document(dataResponse), dataTable = Table.FromRecords(dataSource{"value"}), // 批量替换列名为丹麦语 finalTable = Table.RenameColumns(dataTable, fieldMappings)
方案2:直接使用Business Central的"导出到Power Query"功能
这是最省心的方法,BC会自动处理本地化列名的映射:
- 在Business Central的目标列表页面(已显示丹麦语列名),点击顶部的分享按钮
- 选择导出到Power Query,下载生成的
.pq文件 - 在Power Query中加载该文件,即可直接获取带丹麦语列名的完整数据,无需手动调整请求头或列名
方案3:完善API请求头参数
确保请求头同时包含以下两个参数,让API返回完整的本地化元数据:
Accept-Language: da-DK:指定返回丹麦语内容Accept: application/json;odata.metadata=full:要求返回包含displayName的完整元数据
加载数据后,你可以通过Power Query的Table.RenameColumns结合元数据中的displayName批量替换列名,避免手动逐个重命名。
内容的提问来源于stack exchange,提问作者BE50
相关产品推荐
相关产品推荐

