从Excel背后的VBA调用C#DLL [英] Calling c# dll from vba behind excel

查看:146
本文介绍了从Excel背后的VBA调用C#DLL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个C#API,用于与已设置的数据库进行交互.我需要通过单击此API来调用db上的sproc,从而将数据返回给excel中的用户.

我遇到的问题是从c#方法返回数据,我想返回一个数据表对象,但这也许是不可能的.我注册了.Net类,我可以看到它是从excel模块中调用的,如果返回类型是int或字符串,它可以工作,但是我必须要做些什么才能使方法返回数据表并能够将其数据输出到工作表中?

[ComVisible(true)]
public class TempClass
{ = GetData();
返回结果;
}
}



Public Sub GetData()
Dim temp As TempClass
Dim result As DataTable

设置temp =新的TempClass
设置结果= temp.MyTable()
'--->错误:对象必需

'在数据表中输出信息

推荐答案

这是一个非常老的线程,但是仍然它没有答案,可能对尝试这样做的人有所帮助. VBA与ADODB.RecordSet一起使用,转换.NET数据表很可能会带来很大的麻烦(如果保留CRUD功能).但是,只要 需要阅读此线程显示了一种方法:

This is an extremely old thread, but still it is unanswered and may be helpful to people trying to do the same. VBA works with ADODB.RecordSet and converting a .NET datatable is most likely a massive pain (if conserving CRUD functionality). However, if only reading is required this thread shows a way to do it:

http://www.codeproject.com/KB/database/DataTableToRecordset.aspx

http://www.codeproject.com/KB/database/DataTableToRecordset.aspx


这篇关于从Excel背后的VBA调用C#DLL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆