none
Como remover os '.' de uma determinada coluna no Excel interop usando c#? RRS feed

  • Pergunta

  •  eu carrego uma planilha excel para o access mas tive um problema pois na coluna Horas estava 5.00  por exemplo sendo que deveria estar 5,00. 

    por conta do "." o acces entendo que sao 500h e nao 5.

    queria saber se tem algum modo de trocar todos os pontos por virgulas desta coluna ?  isso tudo usando c#

    obrigado 

    segunda-feira, 30 de setembro de 2013 18:57

Respostas

  • Você quer tratar essa substituição em tempo de execução ou quer tratar a fonte, banco de dados?

    Se você quer tratar em tempo de execução faça um replace ou se for ocaso de querer tratar a base de dados, sugiro que faça o replace usando uma instrução sql.

    quarta-feira, 2 de outubro de 2013 22:49

Todas as Respostas

  • Sei lá, mas um replace não resolveria?
    quarta-feira, 2 de outubro de 2013 20:21
  • Você quer tratar essa substituição em tempo de execução ou quer tratar a fonte, banco de dados?

    Se você quer tratar em tempo de execução faça um replace ou se for ocaso de querer tratar a base de dados, sugiro que faça o replace usando uma instrução sql.

    quarta-feira, 2 de outubro de 2013 22:49
  • então eu ja pensei em usar isso mas nao estrou conseguindo. eu importo uma tabela excel para um banco de dados access, ate ai tudo bem mas as vezes essa tabela do excel vem com pontos fazendo com que o access entenda um 6.00 como 600 ai as informações ficam todas erradas.

     o cogido que uso pra importar a tabela é esse : 

     public void carregarTabela(RelatorioSAP_TO to)
            {
                try
                {
                    OleDbConnection conn = new OleDbConnection(("Provider=Microsoft.ACE.OLEDB.12.0; " + ("data source=" + to.diretorio + "; " + "Extended Properties=Excel 12.0;")));
                    OleDbDataAdapter ada = new OleDbDataAdapter("select * from [" + to.nomeSheet + "$]", conn);
                    DataSet ds = new DataSet();
                    ada.Fill(ds);
                    conn.Close();
                    OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Program Files (x86)\Consolidador De Horas\BamcoDeDados\BbConsolida.accdb");
                    myConnection.Open();
                    string queryString = "SELECT REPACE(Hours,'.',','),Nome,ShortText,Data,WBS_element into RelatorioSAP from [" + to.nomeSheet + "$]";
                    OleDbDataAdapter adapter = new OleDbDataAdapter(queryString, myConnection);
                    System.Data.DataTable dtAccess = new System.Data.DataTable();
                    System.Data.DataTable dtCSV = new System.Data.DataTable();
                    dtCSV = ds.Tables[0];
                    foreach (DataRow dtRow in dtCSV.Rows)
                    {
                        using (OleDbCommand cmd = myConnection.CreateCommand())
                        {
                            cmd.CommandText =
                                "INSERT INTO RelatorioSAP" +
                                "(Nome, Hours, ShortText, Data,WBS_element, DataDaCarga) " +
                                "VALUES(@Nome,@Hours, @ShortText, @Data, @WBS_element,@DataDaCarga)";
                            cmd.Parameters.AddRange(new OleDbParameter[]
                        {           
                            new OleDbParameter("@Nome"       , dtRow[Convert.ToInt32(to.nome)]),
                            new OleDbParameter("@Hours"      , dtRow[Convert.ToInt32(to.hours)]),
                            new OleDbParameter("@ShortText"  , dtRow[Convert.ToInt32(to.sT)]),
                            new OleDbParameter("@Data"       , dtRow[Convert.ToInt32(to.data)]),
                            new OleDbParameter("@WBS_element", dtRow[Convert.ToInt32(to.wbs)]),
                            new OleDbParameter("@DataDaCarga", DateTime.Now.Date)
                        });
                            cmd.ExecuteNonQuery();
                        }
                    }
                    myConnection.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro no metodo que carrega a tabela para o banco de dados. Erro : " + ex.Message);
                }
            }

    eu teria que fazer o tratamento ates de jogar no access. se tiver como mudando a propiá tabela do Excel 

     
    terça-feira, 8 de outubro de 2013 17:06