Home > Office Interop - TroubleShooting > Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))


Olá! Smile

Overview:

Manipulando arquivos Office programaticamente, algumas vezes encontramos problemas para começar a fazer alguma coisa.

Cenário:

Neste caso não foi diferente. Logo ao começar a rodar meu código, encontrei um erro e até então um pouco confuso.

Mas então lembrei que já havia passado por isso antes, mas agora resolvi escrever! J

Estou fazendo alguns trabalhos de exportação das informações do Project Server para planilhas Excel, exportando as informações de todos os projetos da empresa em questão.

ERRO:

Meu código cria uma planilha em runtime, e começa a preencher as células com as informações encontradas.

Ao gerar uma nova Workbook, dentro da Application do Excel, usando Interop, o erro abaixo era gerado:

Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)).

Nesta linha:

XLS.Workbook workbook = app.Workbooks.Add(misValue);

SOLUÇÃO:

Com um pouco de pesquisa, descobri que esse erro é gerado por incompatibilidade de idioma entre o Office e as configurações do Windows.

Para resolver o problema, vá até o Control Panel > Regional and Language Settings e altere as configurações para que as configurações de idioma do Windows “casem” com as configurações do Office.

clip_image002

Ou forçe no código o idioma desejado:

XLS.Application app = new XLS.Application();

                //forçando idioma 
                System.Threading.Thread.CurrentThread.CurrentCulture =
                        System.Globalization.CultureInfo.CreateSpecificCulture("en-US");

                XLS.Workbook workbook = app.Workbooks.Add(misValue);
                XLS.Worksheet sheet = (XLS.Worksheet)workbook.Worksheets.get_Item(1);

Abraço!

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: