这是我在安装Office 2016之前使用的代码。
var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(finfo.FullName, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, false, false);
Excel.Sheets excelSheets = excelWorkbook.Worksheets;
Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
var cellValue =(excelWorksheet.Cells[a, b] as Excel.Range).Value;
代码工作正常但在Office 2016安装后我看到我无法使用
using Excel = Microsoft.Office.Interop.Excel;
我找到的唯一兼容库是
Microsoft.Office.Core(Microsoft Office 16.0对象库)
我无法找到任何访问Excel文件的示例。是否有任何其他方法可以访问安装了Office 2016(PIA)的Excel文件
这是我尝试运行代码时得到的错误
无法转换类型为' System .__ ComObject'的COM对象。接口 键入' Microsoft.Office.Interop.Excel.Application'。这个操作 失败,因为QueryInterface调用了COM组件 接口与IID' {000208D5-0000-0000-C000-000000000046}'失败了 出现以下错误:未注册接口(异常来自 HRESULT:0x80040155)。
答案 0 :(得分:1)
尝试以下步骤:
引用" Microsoft Office 16.0对象库" (您可能会看到版本2.5.0.0)以及" Microsoft Office Interop Excel" (你可能会看到版本15.0.0),这个版本在VS的ASSEMBLIES EXTENSIONS中找到。
制作"使用"使用" System.Runtime.InteropServices"和(我猜)" System.Reflection"在你的例程/模块的顶部。
我将尝试从VB.NET转换为您:
Object ExcelObject = null;
Microsoft.Office.Interop.Excel.Application ExcelApp = null;
Try
ExcelApp = new Microsoft.Office.Interop.Excel.Application;
' and so forth like your code...
Catch
End Try
<强>更新强>
有时上面提到的DLL在COM选项卡以外的地方找到。要查找INTEROP参考(它们与PIA相同),您必须选择它们,如下所示:
这些文件与您的Office软件包或PIA相关(它取决于您的Office版本)。见这里:PIA Libraries
如果您没有看到上述DLL,请在您的计算机中下载并安装PIA。
答案 1 :(得分:0)
问题出在一个完全不同的领域。该问题与注册管理机构有关。我完全删除了与Office安装和重新安装Office 2016有关的所有注册表项。这解决了问题。谢谢你的回答。