Microsoft.Office.Interop.Excel.Application - 调用不同版本的Excel

问题描述 投票:1回答:1

我有以下问题:

var oExcelApp = new Microsoft.Office.Interop.Excel.Application();

在这台机器上启动Excel 2016,但是我的机器上安装了Excel 2010和Excel 2016。我想从2010年开始,我想在我这样做的时候在我的机器上安装2010和2016。

this post说,这是不可能的。但是,我的理解是你可以使用do this programmatically following commands

(将Excel 2010注册为默认应用程序)

"C:\Program Files (x86)\Microsoft Office\Office14\Excel.exe" /regserver

但是,当我运行此命令时,它所做的只是打开excel,没有观察到所需的效果。有没有办法做到这一点,也许有某种registry change?或者引用不同的version of libraries

更新1

我试过this too

var oExcelApp = (Microsoft.Office.Interop.Excel.Application)Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application.14"));

似乎也没有工作,无视excel版本并运行2016年无论specified version

c# excel excel-2010 office-interop excel-2016
1个回答
1
投票

This似乎运作良好。不确定“_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");
© www.soinside.com 2019 - 2024. All rights reserved.