Ayk*_*yik 20 c# excel com-interop
这是我第一次尝试从一个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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jay*_*ani 29
如果这不是代码相关的错误,请从注册表中删除以下给定的密钥.
脚步:
开始 - >运行 - > regedit - > 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,则此问题是由遗留的注册表项引起的.
如果这个解决方案对您没有帮助,请告诉我
Ale*_*lex 17
我在Windows 10上运行Microsoft Office 365并尝试使用上述解决方案删除注册表项但未成功.
再次尝试我的程序,一切正常!
我确信这个问题的答案(以及类似的问题)建议编辑注册表并删除不再在机器上的旧版本的Office引用是正确的.
我只是添加了这个答案,因为我正在踢自己.花了两个小时在注册表中搜索密钥并且无处可去.骰子的最后一击是尝试在Microsoft Office上进行简单的修复,突然我的错误消失了.
...在我看来,在深入手动编辑注册表之前尝试修复是值得的.