如何使用C#使两个Windows应用程序相互通信

时间:2017-11-18 06:51:29

标签: c# .net excel

最近我在MSDN第9频道经过Bob Tabor的C#课程,我喜欢它。理解C#的概述。

我有一个基于C#(NinjaTrader)的股票交易应用程序,我希望它与Excel 2016交谈。我的意思是,如果我在Ninjatrader上绘制一个烛台图表的趋势线,我想要excel了解我画了趋势线,并希望它执行一个简单的任务,如突出显示某些内容或根据某些条件加粗特定单元格。我希望他们实时互相交谈。这是我的要求。

我最近聘请了一名程序员来完成这项任务(他还在为这个项目工作),但我想在未来几年内自己做这件事,因为我想“给自己一臂之力”。有想法但不知道该怎么做才能真正完成任务,这严重限制了我。

经过鲍勃·塔博尔的C#课程后我明白了这一点。在他的视频“了解命名空间和添加对程序集的引用”中,我需要使用对Excel库的引用。那部分我能掌握,但当人们谈论COM时,Interop ......

我称自己为Excel高级用户,因为我在开发具有接近50万个二进制文件格式的vlookup的电子表格方面拥有丰富的经验。

您能否请教我一门课程,教授如何让两个应用程序相互交流?我需要这门课程在C#中。另外,我不确定我应该采取哪些措施来提高我的c#技能。我在21天的Sams书中搜索了c#,但我找不到它的更新版本。所有其他语言都有这样的书,但没有c#。我想将我的知识仅用于个人用途。所以,如果你可以建议我一门课程,这也有助于我达到良好的c#熟练程度。

2 个答案:

答案 0 :(得分:3)

" 如何使2个Windows应用程序相互通信"是非常广泛的定义 有很多方法可以建立这个 但我觉得你的愿望是了解什么是 Application programming interface (API).

创建excel的开发人员认为来自世界各地的其他开发人员需要具备“聊天”的能力。有了它,所以他们还开发了一个库,每个程序员都可以将其作为DLL文件实现到 .Net 项目(Microsoft.Office.Interop.Excel命名空间,它是.net框架的一部分) 基本上,这个库包含属性方法,它们可以用于" talk"从你的.net应用程序中脱颖而出。

<强>百科:

  

API通常与软件库相关。 API描述和   规定了图书馆的预期行为(规范)   是这组规则的实际实现。单个API即可   有多个实现(或没有,是抽象的)形式   共享相同编程接口的不同库。该   将API与其实现分离可以允许程序   用一种语言编写来使用另一种语言编写的库。

每个想要在项目之间或与其他程序员共享(编译)代码的程序员都可以创建一个DLL文件作为API。这里是一个我开发(并且仍在改进)的DLL文件,因为我认为其他程序员在他们的winforms项目上需要这种能力,它会节省一些时间: Graphical Winforms Clock Charts Libary(DLL) - including Speedometer, Executive Goals Clock, Animated Wait Clock

所以,如果您需要使用Microsoft.Office.Interop.Excel,请关注此dll包含的属性和方法:Microsoft.Office.Interop.Excel namespace

另外,youtube上有很多随机视频都有很好的解释,你可以在他们的视频中搜索各种Interop.Excel用法。

这是一个适合初学者的系列: https://www.youtube.com/watch?v=LwYf_aPsuys&list=PLEdObNxHtDHI-EBwVmLLrfdsMp0hsydWV(从未看过它)

总结所有这些,如果您了解所有内容的构建方式并且您将提高编程技能,您将能够非常快速地使用任何库...

答案 1 :(得分:1)

我的理解是你需要一个项目的xls / xlsx输出。您可以使用办公室库或第三方库来实现项目的Excel功能。