VS2013 C#调用EXCEL 编译报错:找不到编译动态表达式所需的一个或多个类型。是否缺少引用?
背景:客户提出需求希望把获取的结果导出成excel表格,本人曾经自制过一个excel操作类(不甚完整但是够用),找到原有项目将操作类导入至新项目后,编译开始报错:“找不到编译动态表达式所需的一种或多种类型。是否缺少引用?”
如下图所示
按照网络上的方法将Microsoft.Office.Interop.Excel类的“嵌入互操作类型”设置为false后,问题没有解决,还出现了另外的报错“无法从“object”转换为“Microsoft.Office.Interop.Excel.Worksheet””和““object”不包含“Rows”的定义,并且找不到可接受类型为“object”的第一个参数的扩展方法“Rows”(是否缺少 using 指令或程序集引用?)”等错误
后来对照了一下老项目,在引用中添加了Microsoft.CSharp便不再报错。经测试直接引用Microsoft.CSharp即可,无需修改嵌入互操作类型的值。
最后有一点很疑惑,为什么新的项目没有自动引用Microsoft.CSharp类,到现在也没有弄清楚。