Forum Discussion
Power Query/M interop with C#
Hi, I am currently in the testing/investigation stages of using Power BI at my company.
Almost all of our data sources are hidden behind http or grpc services. These services can return multiple data formats, for example: Apache Arrow, Apache Parquet, KDB/Kx, json and proprietory formats. Recently we have built an excel add-in for these services in C# using Excel DNA as the interop layer between both workbook and vba, and the add-in has a significant amount of code to do this. Ideally we would like to not repeat this work and simply call C# function within a power query/m custom connector.
The only thing that I can find is this quick reference to ADO.NET in a conference about building custom connectors, https://youtu.be/srQ-DLqhoxM?t=2815, however, I cannot find any further information on this or how to go about starting.
Please let me know if this is possible, and if it's not possible, if you can think of any other approaches to solving this. From what I can see M does not currently have the capability of deserialising arbitrary arrow, parquet or grpc data.
3 Replies
- AnonymousNot applicable
Hey v-jingzhang, sorry, maybe I should have been more clear. My questions is actually kind of two questions in one:
1. Can M interop with C#?
For example, can I do something like either of the following:MyCustomFunction = CSharp.Interop.GetFunction("MyCustomFunction") Source = MyCustomFunction(...) // Calls C# code under the hoodor
using MyCustomCSharpFunctions; // Some external library e.g. a nuget package shared CSharp.DataSource1 = () => MyCustomCSharpFunctions.GetDataSource1(); // Calls C# code under the hood2. If this is not possible, does M have the ability to deserialise custom data types?
From your answer above it seems like the answer to this is no. Formats like arrow cannot be parsed in M yet?
- jcmenco_New Member
Hi. Did you find any solution to this topic? Thanks
- v-jingzhangCommunity Support
Hi Anonymous
You can find the most common data types used in Power Query in the following article: Data types in Power Query - Power Query | Microsoft Learn
And you can find the complete list of data types in the Power Query M formula language from article M Language types - PowerQuery M | Microsoft Learn
I'm afraid some data formats you mentioned are not supported in Power Query.
Best Regards,
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it.