簡體   English   中英

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

[英]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,未觀察到所需的效果。 有沒有辦法做到這一點,也許通過某種注冊表更改 或者引用不同版本的庫

更新 1

我也試過這個

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM