Gerarel - Ao gerar relatório em Excel é retornado "Interface not supported"

Criado por Thalles Fonseca em 06/11/2023 13:31  ·  Atualizado em 07/11/2023 19:13  ·  Leitura: 2 min

Situação: Ao gerar relatório em Excel é retornado "Interface not supported" mesmo com Excel instalado no PC. 

image_81793421821699275236184.png


Solução:

Disponível em: https://stackoverflow.com/questions/43400794/interface-not-supported-error-when-attempting-to-open-excel-or-word-from-delph

Em resumo:

1 - Apagar a chave abaixo:

O problema era que a versão anterior do Excel foi desinstalada incorretamente da máquina. Para consertar, usei as seguintes instruções da Microsoft:

  1. Abra o editor regedit.
  2. AbrirHKEY_CLASSES_ROOT >> TypeLib >> {00020813-0000-0000-C000-000000000046}

(A chave Excel PIA é {00020813-0000-0000-C000-000000000046}) 

3. Exclua a pasta da última versão (Excel 2013 é 1.8, Excel 2016 é 1.9)

Imagem ilustrativa, exemplo do Excel 2013 que é 1.8:

 

Uma correção semelhante  pode ser aplicada a outros produtos do Office:

Excel HKEY_CLASSES_ROOT\TypeLib{00020813-0000-0000-C000-000000000046}\

  • 1.7 é para Office 2010
  • 1.8 é para o Office 2013
  • 1.9 é para o Office 2016

Palavra HKEY_CLASSES_ROOT\TypeLib{00020905-0000-0000-C000-000000000046}\

  • 8.5 é para o Office 2010
  • 8.6 é para o Office 2013
  • 8.7 é para o Office 2016

PowerPoint HKEY_CLASSES_ROOT\TypeLib{91493440-5A91-11CF-8700-00AA0060263B}\

  • 2.a é para Office 2010
  • 2.b é para Office 2013
  • 2.c é para Office 2016

Outlook HKEY_CLASSES_ROOT\TypeLib{00062FFF-0000-0000-C000-000000000046}\

  • 9.4 é para Office 2010
  • 9.5 é para o Office 2013
  • 9.6 é para o Office 2016

Aqui está um exemplo de arquivo regedit para corrigir o Registro do Office 2016:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9]
"PrimaryInteropAssemblyName"="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
@="Microsoft Graph 16.0 Object Library"

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0]

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\win64]
@="C:\\Program Files\\Microsoft Office\\Office16\\EXCEL.EXE"

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\FLAGS]
@="0"

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\HELPDIR]
@="C:\\Program Files\\Microsoft Office\\Office16\\"

[HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}\8.7]
"PrimaryInteropAssemblyName"="Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
@="Microsoft Graph 16.0 Object Library"

[HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}\8.7\0]

[HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}\8.7\0\win64]
@="C:\\Program Files\\Microsoft Office\\Office16\\MSWORD.OLB"

[HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}\8.7\FLAGS]
@="0"

[HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}\8.7\HELPDIR]
@="C:\\Program Files\\Microsoft Office\\Office16\\"