Em automação Excel, como lidar com graciosamente erro de formato de arquivo inválido após a abertura do arquivo?
Pergunta
Eu estou tentando abrir um arquivo do Microsoft Excel em um programa C # usando o método 'excelApp.Workbooks.Open ()'. Quando isso acontece, se o formato do arquivo é inválido, este método faz com que uma caixa de mensagem de erro a ser exibido. Eu, no entanto, não quer isso; Desejo para lidar com esse erro graciosamente em meu próprio código.
A minha pergunta é, como posso fazer isso?
O método acima não lançar qualquer exceção que eu posso pegar. Mesmo que o fizesse, há ainda que a caixa de mensagem traquinas de qualquer maneira. Então, talvez a única maneira seria para validar o formato de arquivo antes abri-lo. Existe, então, um outro método na API Excel para permitir que tal validação?
Solução
Sinto muito, eu não sou capaz de simular o exemplo de arquivo xls corruptos com o Excel 2007.
Tente Application.DisplayAlerts = false antes de chamar Workbooks.Open ...
Se o livro não pode ser aberto, o valor retornado será nulo.
(Isto é, pasta de trabalho wkb = Workbooks.Open (....);
wkb será nulo quando DisplayAlerts = False e o arquivo não pôde ser opended)
Este é puramente baseado no que eu entendo do modelo de objeto do Excel.