Excel和C#.NET

我目前正在开发一个C#应用程序,它目前在Excel中使用VBAmacros来执行数据提取。

Excel文件对于提取数据至关重要,并且该文件将位于客户的计算机上。 由于这个代码是私人内容,并有一个知识产权法律,我想知道如何我可以部署到我的客户的VBA代码,同时保护代码?

我听说VSTO,是否可以从VSTO插件运行VBA代码? 这是正确的安全级别?

谢谢

如果你打算创build一个VSTO插件,那么为什么需要VBA? 您可以按照以下链接直接从您的C#代码中操作数据:

https://msdn.microsoft.com/en-us/library/cc668205.aspx

如果应用程序的要点是从数据库导出数据,那么为什么不使用EPPlus这样的库,只是从外部应用程序导出代码? 再次,没有VBA代码的人有可能看到。

无论哪种方式,您的代码不在标准用户的公有领域。 如果你真的担心你的代码被高举,那么值得关注一下混淆

我想知道如何在保护代码的同时将其部署到我的客户VBA代码?

Excel提供了一种机制来locking我假定您了解的任何工作簿对macros源代码的访问。 如看到这里 。

我听说VSTO,是否可以从VSTO插件运行VBA代码?

这是正确的安全级别?

VBA安全与你如何调用它无关。 如果一个macros受到保护,那么不pipe你如何调用它,都将保持保护。 换句话说,从VSTO调用一个macros并不能以任何方式保护它。

如果你想“隐藏”一个用户的function,只需保护该项目并将该function标记为私有。 但即使该function是公开的,用户也无法看到源代码。