FAZER FUNCIONAR TANTO COM EXCEL 03 E 07

DORMARTH 27/05/2011 09:11:46
#375118
Bom dia!

Outro probleminha que estou encontrando é o seguinte (na verdade tenha mais algumas e vou perguntar tudo aqui para não entupir o forum com um monte de post):

1º - Estou desenvolvendo um programa de controle de Ordem de Serviço para automatizar o controle manual daqui. Me pediram para continuar usando o modelo do excel. Eu estou desenvolvendo em uma pc que tem o excel 2007. Mas esse programa também vai rodar em máquinas que tem o excel 03 (e possivelmente em uma que tem um outro excel que deve ser o XP ou coisa parecida)....
A dúvida é o seguinte: Como eu faço para o meu programinha funcionar tanto com o excel 2007 e 2003??? (Eu não uso uma ferramenta de relatório, tipo crystal,porque sinceramente....eu não sei usar!!! )

2º - A outra dúvida é que tenho no momento é: como eu trato o botão cancelar do open folder dialog????? Toda vez que clico para escolher uma pasta e seleciono uma pasta qualquer, mas desisto e clico em cancelar, o meu programa processa, pois eu faço a verificação se um caminho foi escolhido, e neste caso como eu selecionei uma pasta, ele processa, mas na verdade eu cliquei em cancelar.....no vb6 tinha alguma propriedade parecida para cancelar, mas não lembro agora.

Acho que é só por enquanto.

Obrigado.
PEGUDO 27/05/2011 11:05:50
#375129
Resposta escolhida
Cara, meu programa também trabalha com os dois Excels.

Eu coloco o seguinte no Dialog

[txt-size=5][txt-color=#0000f0]With[/txt-color] OpnFileDialog1
.Title = [txt-color=#e80000][Ô]Abrir arquivo Excel[Ô][/txt-color]
.Filter = [txt-color=#e80000][Ô]Arquivos do Excel (*.xls, *.xlsx)|*xls;*.xlsx[Ô][/txt-color]
[txt-color=#0000f0]End With

If[/txt-color] OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK [txt-color=#0000f0]Then[/txt-color]
[txt-color=#007100][ô]Código a ser executado[/txt-color]
[txt-color=#0000f0]End If[/txt-color][/txt-size]
DORMARTH 27/05/2011 11:22:14
#375134
Mas como você faz referência ao excel 2003???

Eu uso o excel para imprimir a ordem de serviço. Neste caso específico, eu não uso o open file dialog. Eu uso um objeto do tipo New Microsoft.Office.Interop.Excel.Application

Massss da erro quando tento fazer isso em um pc com excel 2003, pois o que está referenciado no projeto é o Excel 2007.

Oque eu preciso saber é como eu referencio os dois tipos? Ou melhor...tem como via run time, descobrir qual biblioteca está instalada e daí referenciar no projeto???? (espero que agora eu tenha explicado melhor)


Se eu conseguir resolver esse problema, já seria de grande ajuda!
PEGUDO 28/05/2011 12:37:29
#375211
Cara, o problema é que o VS2010 formece a biblioteca Microsoft Excel 12.0 Object Library.
Então, o Excel 2003 sempre dá erro porque esta biblioteca é mais para o 2007 em diante.

eu resolvi este problema aqui nas máquinas com Excel 2003, instalando o Office 2003 Update: Redistributable Primary Interop Assemblies.
Acho que o link é este: Office 2003 Update: Redistributable Primary Interop Assemblies

Depois de instalar esta biblioteca na máquina com Excel 2003, deve funcionar.
Espero ter ajudado.
Tópico encerrado , respostas não são mais permitidas