在独立应用程序中使用VSTO访问Excel工作表
试图研究,但有时我似乎缺乏一些谷歌search技巧…
我想开发一个(独立的) WinForms应用程序 ,它使用自动化与Excel进行通信。 我已经知道如何使用Interop,但我认为VSTO工具将提供更加舒适或更复杂的方法来实现这一点。
我的想法是:
- 我可以build立一个新的独立项目与Excel的参考准备。
- 我可以使用VSTO提供的更复杂的对象模型来与Excel进行通信。
但是,到目前为止,我的发现使我认为:
- VSTO只能用于构buildExcel的加载项/工作表, 而不能构build独立的应用程序 。
- 没有比Interop提供的更复杂的对象模型(它具有诸如本地错误,“打开(丢失,丢失,丢失…”)等方法等丑陋的东西。
- 我在VSTO命名空间中发现了一个Worksheet和一个Workbook类,但是据我所知,它们总是引用CS类来实现在定义Excel加载项或工作簿扩展时实现的工作表和工作簿。 – 它们不能在独立应用程序中用作舒适的包装。
任何人都可以证实这些陈述或纠正我在哪里我错了吗?
此外,如果应该有方法使用VSTO及其“工作簿”类从独立的应用程序加载Excel工作簿,那么我该怎么做?
Thx,chiccodoro
VSTO用于开发Office附件,而不是单独的应用程序。
为了从外部应用程序中自动执行Office,COM Interop仍然是实现它的方法。 如果您可以使用.NET 4.0(和Visual Studio 2010),那么您可以访问命名参数和可选参数 ,这使得Interop变得更加愉快。
例如,在.NET 3.5中,你可以这样写:
Workbooks.Open(thisFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)
而在.NET 4.0中,你可以这样写:
Workbooks.Open(thisFileName)
我不相信你可以在外部应用程序中使用来自VSTO命名空间的对象。
与此同时,我又开始了解另一个让Office编程更加舒适的工具 : VSTO电动工具 。 虽然由VSTO团队构build,但它们也可以用于独立应用程序。 它们包含允许的扩展方法
Workbooks.Open(thisFileName)
尽pipe如此,他们仍然没有解决我迄今为止所遇到的几个问题
- 本地化错误
- 只要引用超出范围,就会正确释放所有COM对象。
- 如何以编程方式保存OPEN Excel文档
- 如何获得在VB.NET中编写的用于Excel的COM服务器安装并注册在自动化服务器列表中?
- OLEDB,写Excel单元没有领先撇号
- Excel的ExcelDNA C#/尝试复制彭博BDH()的行为(在networking请求后写入数组)
- 如何解释Excel数字格式string以确定值是否应由DateTime.FromOADateparsing
- 如何selectc#的Excel.Range对象中的工作表中的所有单元格?
- 从Excel单元格读取十进制值(在C#中)
- 我是否需要安装Office才能使用Microsoft.Office.Interop.Excel.dll
- Oledb数据读取器读取Excel文档中已删除的行