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