这是我第一次尝试从一个C#控制台应用程序中捕获excel中的一些数据。
我收到错误消息“无法将类型为’microsoft.Office.Interop.Excel.ApplicationClass’的COM对象转换为’microsoft.Office.Interop.Excel.Application’”。
这段代码使用了“ Microsoft Excel 12.0对象库”,我引用了Microsoft.Office.Interop.Excel。
不过,我仍然无法克服这个错误-我相信它有自己的快速解决方案。
我挖了一点这个网站并遇到了这个解决方案: Interop类型无法嵌入
但是,我不明白,因此无法实施建议的解决方案。
我的.Net版本是4.5。
很感谢任何形式的帮助。
提前致谢。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Excel = Microsoft.Office.Interop.Excel; namespace deneme { class Program { static void Main(string[] args) { Excel.Application xlApp = new Excel.Application(); xlApp.Visible = true; // <-- excel application xlApp.DisplayAlerts = false; // Open the workbook. Excel.Workbook wBook = xlApp.Workbooks.Open("C:\\FNN\\XLA\\fnnComTemplate.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); // get the sheet Excel.Worksheet wSheet = wBook.Sheets[0]; // foreach (Excel.Worksheet sheet in wBook.Sheets) { if (sheet.Name == "templateSheet") { wSheet = sheet; } } Excel.Range rng = wSheet.get_Range("A1"); aux = wSheet.Range["F6"].Value; Console.WriteLine("interop result:" + aux); Console.ReadLine(); } } }
如果这不是与代码相关的错误,请从注册表中删除以下给定的键。
脚步:
开始->运行->注册表编辑-> HKEY_CLASSES_ROOT-> TypeLib-> {00020813-0000-0000-C000-000000000046}-> 1.8 / 1.7(删除)
解决方案:可以通过删除更高版本的Office留下的无效注册表项来解决此问题。请按照上述步骤。
原因:如果您将Microsoft Office版本从Office 2010降级到Office 2007,或将Office 2013降级到Office 2010或2007,则是由于注册表项遗失引起的。
让我知道这个解决方案对您没有帮助