private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                indiceCo = e.ColumnIndex;
                DataGridViewComboBoxCell cb = (DataGridViewComboBoxCell)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];

                if (cb.Value != null)
                {
                    //Mensagens.Informa(string.Format("Voce selecionou: {0}", cb.EditedFormattedValue));
                    foreach (DataGridViewComboBoxCell item in dataGridView1.Rows[0].Cells)
                    {
                        string CampoAtualSelecionado = dataGridView1.Rows[0].Cells[item.ColumnIndex].FormattedValue.ToString();

                        //percorre todas as colunas que não seja essa atual...
                        if (item.ColumnIndex == e.ColumnIndex)
                        {
                            continue;
                        }
                        if (CampoAtualSelecionado == "Grupo")
                        {
                            continue;
                        }
                        if (item.Value == cb.Value)
                        {
                            Mensagens.Informa(string.Format("Já existe um campo selecionado para \"{0}\".\nSelecione outra opção para continuar. ", cb.FormattedValue));
                            //cb.Value = 0;
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            StringBuilder sblinhaTXT = new StringBuilder();
            StringBuilder sbFinalTXT = new StringBuilder();

            for (int i = 0; i < CamposGoogleIngles.Count; i++)
            {
                if (i == 0)
                {
                    continue;
                }
                string valor = CamposGoogleIngles[i].ToString();
                //verifica se for o ultimo não colocar ","
                if (valor == NomeUltimoCampo) // --> "Event 1 - Value"
                {
                    sblinhaTXT.AppendFormat(string.Format("{0}", valor));
                }
                else
                {
                    sblinhaTXT.AppendFormat(string.Format("{0},", valor));
                }
            }
            sbFinalTXT.AppendLine(sblinhaTXT.ToString());
            //sblinhaTXT.AppendLine();

            //int: indice da coluna Grid / string: Nome Combo Selecionado
            Dictionary <int, string> dicionarioSequenciaGrid = new Dictionary <int, string>();

            for (int indice = 0; indice < dataGridView1.Columns.Count; indice++)
            {
                string valorCombo = dataGridView1.Rows[0].Cells[indice].FormattedValue.ToString();
                dicionarioSequenciaGrid.Add(indice, valorCombo);
            }

            for (int IndiceLinhaGrid = 0; IndiceLinhaGrid < dataGridView1.Rows.Count; IndiceLinhaGrid++) //percorrendo linhas....
            {
                sblinhaTXT.Clear();
                gruposLinhaAtual.Clear(); // = new StringBuilder();
                if (IndiceLinhaGrid == 0)
                {
                    continue;
                }
                for (int indiceGoogle = 0; indiceGoogle < CamposGooglePortugues.Count; indiceGoogle++)
                {
                    if (indiceGoogle == 0)
                    {
                        continue;
                    }
                    string campoGoogle       = CamposGooglePortugues[indiceGoogle].ToString();
                    int    indiceCampoGoogle = indiceGoogle;

                    int qtdEncontrado = dicionarioSequenciaGrid.AsEnumerable().Count(pair => pair.Value == campoGoogle).ToInt();
                    #region Se quantidade == 0
                    if (qtdEncontrado == 0)
                    {
                        //trata contatos pois não está no excel retornado...
                        if (campoGoogle == "Contato1" || campoGoogle == "Contato2" || campoGoogle == "Contato3" || campoGoogle == "Contato4" || campoGoogle == "Contato5" || campoGoogle == "Contato6")
                        {
                            if (indiceGoogle == (CamposGooglePortugues.Count - 1))//ultimo registro, tira a ultima virgula
                            {
                                sblinhaTXT.AppendFormat(string.Format("{0}", "Outro"));
                            }
                            else
                            {
                                sblinhaTXT.AppendFormat(string.Format("{0},", "Outro"));
                            }
                            continue;
                        }

                        if (indiceGoogle == (CamposGooglePortugues.Count - 1))//ultimo registro, tira a ultima virgula
                        {
                            sblinhaTXT.AppendFormat(string.Format("{0}", ""));
                        }
                        else
                        {
                            sblinhaTXT.AppendFormat(string.Format("{0},", ""));
                        }

                        continue;
                    }
                    #endregion
                    #region Se quantidade == 1
                    if (qtdEncontrado == 1)
                    {
                        var    key              = dicionarioSequenciaGrid.AsEnumerable().FirstOrDefault(pair => pair.Value == campoGoogle).Key;
                        var    value            = dicionarioSequenciaGrid.AsEnumerable().FirstOrDefault(pair => pair.Value == campoGoogle).Value;
                        string valorCelulaAtual = dataGridView1.Rows[IndiceLinhaGrid].Cells[key].FormattedValue.ToString();
                        valorCelulaAtual = TrataCondicoesEspecificas(valorCelulaAtual, value);
                        if (indiceGoogle == (CamposGooglePortugues.Count - 1))//ultimo registro, tira a ultima virgula
                        {
                            sblinhaTXT.AppendFormat(string.Format("{0}", valorCelulaAtual));
                        }
                        else
                        {
                            sblinhaTXT.AppendFormat(string.Format("{0},", valorCelulaAtual));
                        }
                        continue;
                    }
                    #endregion
                    #region Se quantidade > 1
                    if (qtdEncontrado > 1)
                    {
                        string valorCelulaAtual = "";
                        var    itensIguaisGrid  = dicionarioSequenciaGrid.AsEnumerable().Where(pair => pair.Value == campoGoogle);
                        foreach (KeyValuePair <int, string> item in itensIguaisGrid)
                        {
                            var key   = item.Key;
                            var value = item.Value;
                            valorCelulaAtual = dataGridView1.Rows[IndiceLinhaGrid].Cells[key].FormattedValue.ToString();
                            valorCelulaAtual = TrataCondicoesEspecificas(valorCelulaAtual, value);
                        }
                        if (campoGoogle == "Grupo")
                        {
                            valorCelulaAtual = string.Format("{0};myContacts", valorCelulaAtual);
                        }
                        if (indiceGoogle == (CamposGooglePortugues.Count - 1))//ultimo registro, tira a ultima virgula
                        {
                            sblinhaTXT.AppendFormat(string.Format("{0}", valorCelulaAtual));
                        }
                        else
                        {
                            sblinhaTXT.AppendFormat(string.Format("{0},", valorCelulaAtual));
                        }
                        continue;
                    }
                    #endregion
                }
                sbFinalTXT.AppendLine(sblinhaTXT.ToString());
            }
            string final = sbFinalTXT.ToString();

            string caminhoArquivo = @"C:\Projetos\KEMUEL\ArquivoExportado.csv"; //caminho completo

            //StringBuilder sConteudo = new StringBuilder();
            //sConteudo.AppendLine("Primeira linha do arquivo.");
            //sConteudo.AppendLine("Segunda linha do arquivo.");
            //sConteudo.AppendLine("Terceira e última linha do arquivo.");
            //invocando o método WriteAllText, informando o caminho e o conteúdo
            System.IO.File.WriteAllText(caminhoArquivo, sbFinalTXT.ToString());

            Mensagens.Informa("Exportação concluída com sucesso!");
        }
Esempio n. 3
0
        private void button1_Click(object sender, EventArgs e)
        {
            valorIndiceLinhaGrid = 0;
            sbContato            = new StringBuilder();
            sbFinalTXT           = new StringBuilder();

            //int: indice da coluna Grid / string: Nome Combo Selecionado
            dicionarioSequenciaGrid = new Dictionary <int, string>();
            for (int indice = 0; indice < dataGridView1.Columns.Count; indice++)
            {
                string valorCombo = dataGridView1.Rows[0].Cells[indice].FormattedValue.ToString();
                if (dataGridView1.Rows[0].Cells[indice].Value.ToString() == "0")
                {
                    continue;
                }
                dicionarioSequenciaGrid.Add(indice, valorCombo);
            }
            if (dataGridView1.Rows.Count == 0)
            {
                Mensagens.Informa("Nenhuma linha na seleção atual.\nBusque um fonte de dados e tente novamente.");
                return;
            }
            if (dicionarioSequenciaGrid.Count == 0)
            {
                Mensagens.Informa("Nenhuma coluna foi modificada.");
                return;
            }

            using (FormWaiting frm = new FormWaiting(Processando))
            {
                frm.ShowDialog(this);
            }


            //-----------------------------------------------------
            //define o titulo
            saveFileDialog1.Title = "Salvar Arquivo Texto";
            //Define as extensões permitidas
            //saveFileDialog1.Filter = "Arquivo vCard|.vcf";
            saveFileDialog1.Filter = "Arquivo vCard (*.vcf)|*.vcf";
            //define o indice do filtro
            saveFileDialog1.FilterIndex = 0;
            //Atribui um valor vazio ao nome do arquivo
            saveFileDialog1.FileName = "ContatosExportados_" + DateTime.Now.ToString("ddMMyyyy_HHmmss");
            //Define a extensão padrão como .txt
            saveFileDialog1.DefaultExt = ".vcf";
            //define o diretório padrão
            //saveFileDialog1.InitialDirectory = @"c:\dados";
            //restaura o diretorio atual antes de fechar a janela
            saveFileDialog1.RestoreDirectory = true;

            //Abre a caixa de dialogo e determina qual botão foi pressionado
            DialogResult resultado = saveFileDialog1.ShowDialog();

            //Se o ousuário pressionar o botão Salvar
            if (resultado == DialogResult.OK)
            {
                //cria um stream usando o nome do arquivo
                System.IO.FileStream fs = new System.IO.FileStream(saveFileDialog1.FileName, System.IO.FileMode.Create);

                //cria um escrito que irá escrever no stream
                System.IO.StreamWriter writer = new System.IO.StreamWriter(fs);
                //escreve o conteúdo da caixa de texto no stream
                writer.Write(sbFinalTXT.ToString());
                //fecha o escrito e o stream
                writer.Close();


                //string caminhoArquivo = @"C:\Projetos\KEMUEL\ContatosExportados.vcf"; //caminho completo
                //System.IO.File.WriteAllText(saveFileDialog1.FileName, sbFinalTXT.ToString());

                Mensagens.Informa("Exportação concluída com sucesso!");
            }
            else
            {
                //exibe mensagem informando que a operação foi cancelada
                //MessageBox.Show("Operação cancelada");
                return;
            }
        }