【发布时间】:2021-04-27 16:34:15
【问题描述】:
我有一个包含多个工作表的小型 (1.5 MB) Excel 文件。我需要转换每个工作表(两个重要的转换被创建为单独的函数),然后动态扩展结果(即每个工作表可以有不同数量的列,所以我需要事先提取所有不同列名的列表)。
一切正常,输出符合我的预期,但是,我注意到刷新 Power Query 时加载了超过 10 MB 的数据。完成后,“加载”窗口会重置,并且会再次加载超过 10 MB 的数据。
这是我正在使用的 M 代码。我已经测试了每个部分,看起来扩展步骤可能是最慢的。
let
Source = Excel.Workbook(File.Contents("xxx.xlsx"), null, true),
Split = Table.SplitColumn(Source, "Name", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Name.1", "Name.2", "Name.3"}),
TidyUp = Table.RenameColumns(
Table.RemoveColumns(Split,{"Item", "Kind", "Hidden", "Name.3"}),
{{"Name.1", "PORTFOLIO"}, {"Name.2", "DATE"}}),
GetCurrency = Table.AddColumn(TidyUp, "CURRENCY", each GetCurrencyFromSpreadsheet([Data])),
GetStresses = Table.AddColumn(GetCurrency, "fx", each GetStresses([Data])),
ColNames = Table.ColumnNames(Table.Combine(GetStresses[fx])),
Expanded = Table.ExpandTableColumn(GetStresses, "fx", ColNames),
RemoveData = Table.RemoveColumns(Expanded,{"Data"})
in
RemoveData
因此,处理一个小型 Excel 文件大约需要 5 分钟。由于我们预计将来会收到更多类似的文件,如果您有任何想法我可以做些什么来改进代码,我想与您核实一下?谢谢。
【问题讨论】:
标签: powerbi powerquery