AJUDA VERSAO XLS
Olá pessoal do vbmania,
venho encarecidamente pedir uma dica para todos vocês.
Tenho uma aplicação web que vai pegar um arquivo XLS e inserir os dados no banco, até ai tudo certo e ja fiz ate a rotina, o meu problema (nao é bem um problema) é o seguinte:
existem varias versões de xls, e agora com o novo office ate o xlsx, dessa forma a minha connectionstring é a seguinte:
o caso é que o extend Properties tem que ser o correto com a versao do xls, pensei em fazer a verificaçao pela extenção um switch case contendo a extençao, se for xlsx tem uma connectstring e se for xls, tem outra... o caso é que fazendo uma planilha no office 2000 por exemplo, ele gera um XLS de versao X.X e se você fazer a mesma planilha no office 2007 e salva-lo como XLS, ele vai ter a mesma extençao do XLS do 2000 porem a versao vai ser diferente, dessa forma dificultando minha connection string....
Atualmente o cliente usa office 2003, porém algumas pessoas la utilizam 2007,
gostaria de saber como posso pegar essa versao do XLS, ou seja, o Extended Properties certo do xls correspondente!
Agradeço desde ja
NaM4
venho encarecidamente pedir uma dica para todos vocês.
Tenho uma aplicação web que vai pegar um arquivo XLS e inserir os dados no banco, até ai tudo certo e ja fiz ate a rotina, o meu problema (nao é bem um problema) é o seguinte:
existem varias versões de xls, e agora com o novo office ate o xlsx, dessa forma a minha connectionstring é a seguinte:
@[Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\pc\Desktop\QUERY012011.xls;Extended Properties=Excel 8.0[Ô];
o caso é que o extend Properties tem que ser o correto com a versao do xls, pensei em fazer a verificaçao pela extenção um switch case contendo a extençao, se for xlsx tem uma connectstring e se for xls, tem outra... o caso é que fazendo uma planilha no office 2000 por exemplo, ele gera um XLS de versao X.X e se você fazer a mesma planilha no office 2007 e salva-lo como XLS, ele vai ter a mesma extençao do XLS do 2000 porem a versao vai ser diferente, dessa forma dificultando minha connection string....
Atualmente o cliente usa office 2003, porém algumas pessoas la utilizam 2007,
gostaria de saber como posso pegar essa versao do XLS, ou seja, o Extended Properties certo do xls correspondente!
Agradeço desde ja
NaM4
Ola Amigo,
Você poderia usar o objeto do Excel, Excel.Application adicionando o activex da versão mais atualizada que você puder, e usar ele para abrir ..
ira abrir qualquer versão anterior a ele sem problemas.
quanto ao extended, se você precisar rodar em Win7x64 vai precisar usar o ACE que gera uma connectionstring totalmente diferente dessa.
Caso você tenha o excel instalado na maquina q vai executar essa aplicação, utilize a referencia ao aplicativo é bem mais facil e menos problematico.
=)
Você poderia usar o objeto do Excel, Excel.Application adicionando o activex da versão mais atualizada que você puder, e usar ele para abrir ..
ira abrir qualquer versão anterior a ele sem problemas.
quanto ao extended, se você precisar rodar em Win7x64 vai precisar usar o ACE que gera uma connectionstring totalmente diferente dessa.
Caso você tenha o excel instalado na maquina q vai executar essa aplicação, utilize a referencia ao aplicativo é bem mais facil e menos problematico.
=)
ola spritu,
obrigado pela resposta, mas eu nao entendi direito, poderia me dar um exemplo prático?
abraços
obrigado pela resposta, mas eu nao entendi direito, poderia me dar um exemplo prático?
abraços
Veja se te ajuda.
string path = [Ô]C:\\examples\\file1.xlsx[Ô];
string connString = string.Format([Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] + path + [Ô];Extended Properties=\[Ô]Excel 12.0 Xml;HDR=YES\[Ô];[Ô]);
OleDbConnection cn = new OleDbConnection(connString);
cn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter([Ô]SELECT * FROM [Sheet1$][Ô], cn);
DataTable dt = new DataTable();
adapter.Fill(dt);
TECLA, obrigado pela resposta, mas esta forma eu faço tambem...
o meu problema é o seguinte... pra abrir o arquivo tenho que dar o version no Extended Properties.... só que a versao pode variar de acordo com o office do cliente... mesmo salvando com formato antigo... exemplo:
tenho excel 2003 salvo XLS ele vai salvar com uma versao pro extended properties se eu tiver o excel 2007 e salvar o mesmo XLS a versao é diferente... mesmo os dois sendo com extenção XLS
abraços
o meu problema é o seguinte... pra abrir o arquivo tenho que dar o version no Extended Properties.... só que a versao pode variar de acordo com o office do cliente... mesmo salvando com formato antigo... exemplo:
tenho excel 2003 salvo XLS ele vai salvar com uma versao pro extended properties se eu tiver o excel 2007 e salvar o mesmo XLS a versao é diferente... mesmo os dois sendo com extenção XLS
abraços
Tópico encerrado , respostas não são mais permitidas