【发布时间】:2017-05-30 14:47:56
【问题描述】:
这是我在安装 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 的 Excel 文件(PIA)
这是我尝试运行代码时遇到的错误
无法将“System.__ComObject”类型的 COM 对象转换为接口 键入“Microsoft.Office.Interop.Excel.Application”。这个操作 失败,因为对 COM 组件的 QueryInterface 调用 由于 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口失败 到以下错误:未注册接口(来自的异常 HRESULT: 0x80040155)。
【问题讨论】:
-
这与“初始化”有什么关系并不是很明显。 PIA have been obsolete 在过去 7 年中,您将不得不停止使用它们。如果真的是“初始化”,你的程序不会启动,那么考虑你可能安装了64位版本的Office。所以你的程序也需要在 64 位模式下运行。
-
当我说初始化时,我指的是访问 Excel 文件的 Excel 对象实例。我将 Office 更改为 2016,我认为 PIA 是我的代码不起作用的主要问题(我猜)。访问 Excel 文件应该做哪些更改?
-
我发布了错误。 @HansPassant
标签: c# excel excel-interop office-2016