Usuário com melhor resposta
Converter xls e xlsx para csv

Pergunta
-
Boa tarde,
Preciso converter os arquivos xls e xlsx para csv, pois o servidor onde roda minha aplicação não possui o office instalado e não existe a possibilidade de instalar.
Eu consigo enviar os arquivos para o servidor, mas não consegui encontrar nenhuma maneira que funciona-se de converter os dois tipos de arquivo.
Ou se existir alguma forma de ler os arquivos com essa extensão sem ter o office instalado também ajuda!
Pois preciso ler os arquivos e jogar em uma tabela no banco de dados.
Obrigado!
Respostas
-
Faça um teste com esse Código no seu provedor?
Você vai ter que ler :
protected void LerXls() { DataTable DataXls = new DataTable("tableXls"); String ConexaoString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties='Excel 8.0;HDR=Yes'"; using (OleDbConnection Conexao = new OleDbConnection(String.Format(ConexaoString, Server.MapPath(".") + "/dados.xls"))) using (OleDbCommand Comando = Conexao.CreateCommand()) { Conexao.Open(); Comando.CommandType = CommandType.Text; Comando.CommandText = "SELECT Id, Nome FROM [Plan1$]"; DataXls.Load(Comando.ExecuteReader()); Conexao.Close(); } GridViewExcel.DataSource = DataXls; GridViewExcel.DataBind(); }
dados.xls // troque pelo seu ai!
Plan1$ Torque pelo nome da sua planilha!
Ou então,
Já mande o arquivo convertidos para texto! ai você consegue fazer leitura normal!!!
- Marcado como Resposta Rafael Soarde Matias quinta-feira, 21 de novembro de 2013 16:23
Todas as Respostas
-
Faça um teste com esse Código no seu provedor?
Você vai ter que ler :
protected void LerXls() { DataTable DataXls = new DataTable("tableXls"); String ConexaoString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties='Excel 8.0;HDR=Yes'"; using (OleDbConnection Conexao = new OleDbConnection(String.Format(ConexaoString, Server.MapPath(".") + "/dados.xls"))) using (OleDbCommand Comando = Conexao.CreateCommand()) { Conexao.Open(); Comando.CommandType = CommandType.Text; Comando.CommandText = "SELECT Id, Nome FROM [Plan1$]"; DataXls.Load(Comando.ExecuteReader()); Conexao.Close(); } GridViewExcel.DataSource = DataXls; GridViewExcel.DataBind(); }
dados.xls // troque pelo seu ai!
Plan1$ Torque pelo nome da sua planilha!
Ou então,
Já mande o arquivo convertidos para texto! ai você consegue fazer leitura normal!!!
- Marcado como Resposta Rafael Soarde Matias quinta-feira, 21 de novembro de 2013 16:23
-
Fala ai Fúlvio!
Então... consegui ler a planilha .xls com esse código, porem preciso ler .xlsx também, dei uma pesquisada no google e pelo que eu entendi só precisa alterar a string de conexão...onde esta OLEDB.4.0 e Excel 8.0 seria OLEDB.12.0 e Excel 12.0, mas quando eu uso essa string ele fala que a versão do OLEDB 12.0 não está registrada, não sei se seria essa a unica alteração ou se existe mais alguma... ou então talvez alguma instalação... o problema que se for instalação, preciso torcer para ter no servidor da locaweb também, porque até agora fiz os teste local.
Caso conseguir algo me da um toque, valeu!
-
-