年前,我写了一个Delphi 6应用程序,该应用程序使用OLE自动化来生成Excel和Word中的内容。该代码在较旧的系统上可以正常运行,但在我当前的Windows 10机器上失败了Office 2016,错误“界面不支持”。
Environment:Delphi 6 Enterprise,Windows 10 Pro(版本21H2),Microsoft Office Professional Plus2016
我的完整代码太长了,无法逐字粘贴,因此我提取了一个足以证明故障场景的示例。调用CreateOleObject
线时发生错误。
unit Unit1;
interface
uses
Windows, ComObj, ActiveX, Variants, SysUtils, Dialogs;
procedure OpenExcelAndWordWithText;
implementation
procedure OpenExcelAndWordWithText;
var
ExcelApp, Workbook, Worksheet: Variant;
WordApp, Document: Variant;
begin
CoInitialize(nil);
try
try
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Visible := True;
Workbook := ExcelApp.Workbooks.Add;
Worksheet := Workbook.Worksheets[1];
Worksheet.Cells[1, 1] := 'Hello world';
except
on E: Exception do
begin
ShowMessage('Excel Error: ' + E.Message);
Exit;
end;
end;
try
WordApp := CreateOleObject('Word.Application');
WordApp.Visible := True;
Document := WordApp.Documents.Add;
Document.Content.Text := 'Hello world';
except
on E: Exception do
ShowMessage('Word Error: ' + E.Message);
end;
finally
CoUninitialize;
end;
end;
end.
我怎么可以解决这个问题?
HKEY_CLASSES_ROOT >> TypeLib >> {00020813-0000-0000-C000-000000000046}
3。删除最后一个版本文件夹(Excel 2013是1.8,Excel 2016 IS 1.9)类似的fix可以应用于其他办公产品:
excelHKEY_CLASSES_ROOT \ TYPELIB {00020813-0000-0000-0000-C000-0000000046} \ 1.8用于办公室2013
8.6用于办公室20131.9用于办公室2016
word
- hkey_classes_root\ typelib {00020905-0000-0000-0000-C000-000000000046} \
- 8.5用于办公室2010
8.7用于办公室2016
POPTORPOINT
2.b是办公室2013- HKEY_CLASSES_ROOT\ TYPELIB {91493440-5A91-11CF-8700-00AA0060263B} \
- 2.a是为2010年办公室
2.c用于办公室2016
9.5用于办公室2013
- outlook
hkey_classes_root\ typelib {00062FFF-0000-0000-0000-C000-0000000046} \- 9.4用于办公室2010
9.6用于办公室2016我们发现解决方案很简单。转到设置或右键单击“开始”按钮,查找“添加删除程序”或“应用程序和功能”或“已安装应用程序”,查找和选择Office,然后选择“修改”,选择在线维修,而不是快速维修。等到完成,然后在需要时重新插入序列号。there是一个示例regedit文件,用于修复Office 2016的注册表:
我们的客户有同样的问题。他们正在使用DMR(数字标记读取器)应用程序。每当用户将数据导出到Excel时,都会显示“不支持接口”消息。 Excel版本是Office 2021。DMR应用程序没有错。
{00020813-0000-0000-C000-000000000046})
- 我们遇到了同样的问题,发现:以上解决方案仅在进行Office安装时才有效,如果您使用O365,并且单击以运行上述解决方案是行不通的。您需要在物理上安装应用程序,而不是在单击运行时运行它们。
Source:
https://support.microsoft.com/en-us/office/repair-an-fice-application-7821d4b6-7c1d-4205-4205-aa0e-aa6b40c5bbbbbbb888888b