在具有不同Office版本的不同计算机上使用相同的Microsoft.excel对象库

时间:2018-12-17 14:44:25

标签: c# excel vb.net visual-studio

我有Visual Studio2013。我为Microsoft Excel 16(具有Office 2016)添加了一个引用,此引用在此项目中正常工作。 但是,当我在包含Office 2013的另一台计算机上使用此项目时,会丢失参考。 我可以解决此问题而不必在不同的计算机上安装相同版本的Office吗?

2 个答案:

答案 0 :(得分:0)

如果要继续使用Excel Interop而不用担心版本控制,则需要一个NetOffice之类的包装器。我已经在遗留代码中广泛使用了它,并且可以证明它可以解决此类问题。

但是,正如@Jimi和@BenCamps所暗示的那样,如果可以在不使用互操作的情况下完成所需的操作,则应该这样做。如果您只是在进行导出,则使用OpenXML或类似EPPlus的包装(非常棒)将减少开销并减少脆弱性。

答案 1 :(得分:0)

如果要省略引用库,则可以使用后期绑定来动态创建Excel应用程序。但是您将失去IntelliSense ...

C#

dynamic xlApp = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
var xlBook = xlApp.Workbooks.Open(@"C:\mybook.xlsx");
var xlSheet = xlBook.Sheets[1];
// Other code...

VB

Dim xlApp = CreateObject("Excel.Application")
Dim xlBook = xlApp.Workbooks.Open("C:\mybook.xlsx")
Dim xlSheet = xlBook.Sheets(1)