none
Converter xls e xlsx para csv RRS feed

  • 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!

    terça-feira, 19 de novembro de 2013 19:34

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!!!


    Fulvio Cezar Canducci Dias

    terça-feira, 19 de novembro de 2013 21:11

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!!!


    Fulvio Cezar Canducci Dias

    terça-feira, 19 de novembro de 2013 21:11
  • 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!

    quinta-feira, 21 de novembro de 2013 13:34
  • Se testou a String de Conexao OLEDB 12 no servidor!

    Faça isso!

    No seu PC eu acredito que não rode mesmo!!!

    ?

    Faça o teste!!! antes de mais nada!!!


    Fulvio Cezar Canducci Dias

    quinta-feira, 21 de novembro de 2013 15:10
  • Valeu Fúlvio!

    Funcinou no servidor tanto xls e xlsx!

    quinta-feira, 21 de novembro de 2013 16:22