Descrição do Cenário:
Implementamos nosso sistema em uma empresa que possui um ERP e deseja que este sistema ERP atualize os dados de cadastro dos funcionários automaticamente no nosso sistema, todos os dias.
Para isso, disponibilizamos um serviço web através do qual a atualização dos dados seriam publicadas no nosso sistema a partir de arquivos .XLS exportados do sistema ERP.
O problema da abordagem adotada era que o ERP não gerava arquivos .XLSX e sim arquivos do tipo BIFF ou Excel 2. Descritos abaixo
Quando os arquivos eram publicados acontecia um erro de leitura dos dados através do provider Microsoft.ACE.OLEDB que não suporta esses tipos de arquivo.
A solução mais rápida foi adotar um novo processo antes de fazer a leitura das planilhas:
1 - Salvar arquivo BIFF/Excel 2 recebido pelo webservice.
2 - Abrir arquivo com o Microsoft Excel
3 - Salvar arquivo como .XLS (2007)
4 - Continuar leitura dos dados a partir do novo arquivo.
Quando publicamos em um dos nossos ambientes de homologação, a solução não funcionava, embora nos testes em desenvolvimento não tenha aparecido nenhum tipo de problema.
Investigando um pouco mais, no passo 2 descobrimos que o seguinte erro acontecia:
Neste momento, identificamos que o erro não estava na nossa aplicação, mas sim no Excel que não conseguia abrir o arquivo BIFF/Excel2. Investigando o Log da aplicação no windows, conseguimos identificar a fonte do problema através da mensagem abaixo:
Para resolver a situação, foi necessário alterar algumas configurações de segurança no Microsoft Excel.
Abrindo o programa, clicamos em File > Options > Trust Center > Trust Center Settings > File Blocking Settings
Devemos desmarcar as opções Open e Save para os arquivos que precisamos, conforme mostrado na figura abaixo:





No comments:
Post a Comment