[英]Convert Microsoft.Office.Interop.Excel.Application to byte[]
[英]Microsoft.Office.Interop.Excel.Application - Invokeing Different Versions of Excel
我有以下问题:
var oExcelApp = new Microsoft.Office.Interop.Excel.Application();
在这台机器上,这会启动 Excel 2016,但是我的机器上同时安装了 Excel 2010 和 Excel 2016。 我想从 2010 年开始,并且在我这样做时,我想在我的机器上同时安装 2010 年和 2016 年。
根据这篇文章,这是不可能的。 但是,我的理解是您可以使用以下命令以编程方式执行此操作:
(将 Excel 2010 注册为默认应用程序)
"C:\Program Files (x86)\Microsoft Office\Office14\Excel.exe" /regserver
但是,当我运行此命令时,它所做的只是打开 excel,未观察到所需的效果。 有没有办法做到这一点,也许通过某种注册表更改? 或者引用不同版本的库?
我也试过这个:
var oExcelApp = (Microsoft.Office.Interop.Excel.Application)Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application.14"));
似乎也不起作用,忽略 excel 版本并运行 2016 而不考虑指定的版本。
这似乎工作得很好。 不确定“_Application”和“Application”之间的区别是什么,但根据评论“Application”是首选:
string pathToTheVersionOfExcel "...";
int amountOfTimeToWaitForFailure = 5000;
Process process = new Process();
process.StartInfo.FileName = pathToTheVersionOfExcel;
process.Start();
Thread.Sleep(amountOfTimeToWaitForFailure);
oExcelApp = (Application)Marshal.GetActiveObject("Excel.Application");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.