在作导出Excel时,有一行代码
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();app
new了一个接口,编译器也报错,并且运行正确。函数
此接口定义:ui
namespace Microsoft.Office.Interop.Excel { [CoClass(typeof(ApplicationClass))] [Guid("000208D5-0000-0000-C000-000000000046")] public interface Application : _Application, AppEvents_Event { } }
谷歌之:spa
NET提供Interop 程序集,它用做托管和非托管代码之间的桥梁,将 COM 对象成员映射为等价的 .NET 托管成员。.net
在.net里面非托管转换成托管的接口用CoClass标记接口转换成类,因此excel.application 实例化是能够的。excel
还有一种替代此行代码的方法,
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();对象
类型“Microsoft.Office.Interop.Excel.ApplicationClass”未定义构造函数
没法嵌入互操做类型“Microsoft.Office.Interop.Excel.ApplicationClass”。请改用适用的接口。blog
解决办法是将引用的DLL:Microsoft.Office.Interop.Excel;的嵌入互操做类型改成false,就能够了。接口