我有一个用VBA编写的Excel插件,它可以遍历表单的使用范围并操纵单元格值。它是一个简单的插件,但现在用户需求已经改变,我想在Visual Studio中用C#开发它。为此我正在研究VSTO,但就我在Visual Studio中可以理解的情况而言,您可以开发用于单个版本的Excel的插件。我必须为excel 2010和excel 2013提供支持。我应该如何解决这个问题。哪个视觉工作室版本我应该使用?Visual Studio中的Excel 2010和Excel 2013的Excel Addin
回答
任何版本的Visual Studio从2010年到现在应该能够创建VSTO加载项为Excel 2010 。从VS 2012开始,也适用于Office 2013.您在更高版本中看到的哪组模板取决于1)安装的Office版本和2)创建项目时选择的.NET Framework版本(4.0 for 2010; 4.5以后)。更多信息可以在这个页面找到:https://blogs.msdn.microsoft.com/vsto/2013/03/06/office-developer-tools-for-visual-studio-2012-now-available-with-office-2013-and-net-framework-4-5-support/
请注意,你应该只有一个版本的Office安装在开发环境中。
如果可能,您应该开发Excel 2010外接程序。为旧版本开发的外接程序将运行更新的版本,而无需另外进行任何操作 - 假设Microsoft未做出更改到你使用的将破坏它的对象模型的部分。由于Microsoft特别关注向后兼容性,这通常不是问题,但彻底的测试非常重要。没有必要重新构建或以其他方式更改安装以安装到较新版本的Office。
针对旧版本开发的一个重要原因是转发兼容性不受支持。换句话说,如果你应该使用较旧版本中不存在的东西,那么代码将失败。
此外,VSTO功能会自动将对较旧版本PIA的引用重新映射到较新版本Office的新版本。反过来是不是的情况。
如果出于某种原因无法使用旧版本进行编程,只要您有.NET Framework 4.0(或更高版本),就可以使用Reference的“Embed Interop types”属性来嵌入PIA信息在您的项目中,以便它与您的解决方案一起旅行,而不是参考安装在GAC 和中的PIA,使它们独立于版本。理论上这很好,但需要非常彻底和认真的测试,因为除了前向兼容性问题外,实际嵌入的信息并不总是正确的。
您需要安装支持Excel 2013的VSTO版本13的Visual Studio 2013,但您可以通过从应用程序创建安装程序文件来支持Excel 2010。并没有其他的方式来支持从代码库的两个不同版本同时
感谢
你的意思是我必须从同一个项目为Excel2010&2013创建两个不同的安装程序,或者我必须为两个Excel版本维护两个不同的项目? –
是的,你可以从同一个项目创建两个不同的安装程序 –
- 1. 适用于Excel 2007和2010的Excel Addin
- 2. 使用Visual Studio Installer更新VSTO Excel Addin
- 3. Excel Addin和ASP.net
- 4. Datagrid在ASP.NET C#中的Excel - Visual Studio 2010
- 5. 显示Unicode字符:Excel 2010 vs Excel 2013
- 6. Excel 2010 vs Excel 2013 VBA存储过程
- 7. 在Excel 2011中用于MAC的Excel AddIn
- 8. VS 2013和Excel 2010中的Visual Basic:找不到xlQualityStandard(未声明)
- 9. 在Excel 2010中编写的宏在Excel 2013中不工作
- 10. C#Visual Studio中的Excel COM
- 11. Excel 2010/2013折线图
- 12. WCF在Excel Addin
- 13. Delphi Excel COM-Addin
- 14. visual studio 2008 - 添加excel 2010工作簿
- 15. Microsoft Excel C API和Visual Studio
- 16. 自动部署VSTO Excel 2010 AddIn
- 17. 64位Microsoft Excel 2010 Addin加载错误
- 18. Application.ActiveWorkbook在Excel Addin中为空
- 19. Excel 2010中未启用宏和Visual Basic
- 20. SQL和Excel 2010
- 21. 用于Office的Visual Studio 2013 RC和Visual Studio工具 - TF400422使用Excel时出错
- 22. 的Visual Studio 10 TFS在Excel
- 23. Excel VBA WorkSheet.Copy Excel 2013后
- 24. 用于.NET 4.0的F#和Excel集成(Visual Studio 2010 Beta 1)
- 25. 在Visual Studio 2017 Express中的Excel 2013加载项
- 26. 使用Excel 2010与Visual FOXPRO
- 27. Excel的VBA的SetFocus在Excel 2013
- 28. Excel excel中的计算错误2010
- 29. Excel 2010中的PowerView
- 30. Excel 2010中的宏
谢谢你的详细解答。 –