none
Importar arquivo tabulado para datagridview RRS feed

  • Pergunta

  • Olá Pessoal.

    Tenho a seguinte situação:

    Necessito importar arquivos xls, xlsx e separados por tabulação que abro no excel (csv) e exibi-los no datagridview para depois apricar filtros (não é o caso agora).

    Consigo abrir arquivos xls sem problemas, porem nem sempre ele será xls e neste caso se apresenta a minha questão.

    Penso em fazer algo que verifique qual o tipo de arquivo está sendo aberto e determine o tratamento para este caso.

    O código em que abre xls é este:

    OleDbConnection xlsx = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Banco de Dados Click\testes;Extended Properties='Excel 12.0 Xml; HDR=YES; ReadOnly=true; IMEX=1';");
                OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [plan1$]", xlsx);
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                xlsx.Open();
                da.Fill(ds);
                dt = ds.Tables[0];
                dgvAbertas.DataSource = dt;

    utilizo windows form c#.

    caso alguem consiga me auxiliar, eu agradeço.

    quarta-feira, 28 de maio de 2014 01:08

Respostas

  • if(FileName.Contains(".csv"))
    {
      StreamReader reader = new StreamReader(path);
      string linha;
      while((linha = reader.ReadLine()) != null)
      {
        string[] dados = linha.Split(';');
        // agora no dados vc tem todos as infos da linha, desse momento em diante vc trata como for melhor
      }
    }

    Todo CSV nada mais é que um .txt ou seja, no codigo que te fiz, vc simplesmente vai tratar como texto e ler seus dados, por padrão, separador de .csv é ponto e virgula ";" então não existe muito problema.

    e logo no inicio, nao sei como vc pega qual éo arquivo, deve ser um OpenFileDiealog, e nele contem o filename que por sua vez contem a extensão, se for csv vc trata como texto, se nao, da forma que vc ja ta fazendo.


    quarta-feira, 28 de maio de 2014 11:16