Raffraichir les colonnes de datagridview au fur et à mesure

jakarenda Messages postés 33 Date d'inscription dimanche 24 janvier 2010 Statut Membre Dernière intervention 3 décembre 2014 - Modifié par jakarenda le 3/12/2014 à 12:42
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 4 déc. 2014 à 11:17
Bonjour à tous

Je suis entrain de développer une application C# windows form qui me permet de convertir les fichiers pdf qui se trouvent dans un répertoire vers excel en utilisant un logiciel qui s'appelle PDF2XL et voici le code pour parler un peu technique:
private void ConvertirversExcel_Click(object sender, EventArgs e)
{  
string Output = null;
  if (folderBrowserInput != null)
             {
                 filesIn = Directory.GetFiles(folderBrowserInput.SelectedPath);
                 Output = folderBrowserOutput.SelectedPath;
              }
if (filesIn!=null)
            {

            foreach (var filePath in filesIn)
            {

                string FileConverted =  Path.ChangeExtension(Output + "\\" + new FileInfo(filePath).Name, ".xls");
                string FileConvertedWithoutExtention = Path.GetFileNameWithoutExtension(FileConverted);
                Process process = Process.Start("PDF2XL.exe", "PDF2XL -run -autoclose -input=" + filePath +
                " -format=excelfile -range=all -layout=C:\\LayoutsFolder251\\Layout_24_11.layoutx -output=" + FileConverted +
                " C:\\OutputFolder\\" + FileConvertedWithoutExtention + ".log");

                    //    " C:\\OutputFolder\\ " + new FileInfo(filePath).Name + " error.log");
                process.Close();

                Thread.Sleep(7000);

                Process[] excelProcessTab = Process.GetProcessesByName("EXCEL");
                if (excelProcessTab.Length > 0)
                {
                    Process excelProcess = excelProcessTab[0];
                    excelProcess.Kill();
                }

                var info = new GridInfo();
                info.Nom_Fichier = Path.GetFileName(filePath);
                info.Transfert_vers_XLS = "Succés";
                info.Message_erreur_XLS = "";
               
                list01.Add(info);
            }

            }
   dataGridView1.DataSource = list01;
   dataGridView1.Refresh();
}

public class GridInfo
{
        public string Nom_Fichier { get; set; }
        public string Transfert_vers_XLS { get; set; }
        public string Message_erreur_XLS { get; set; }
}


Voila le code que j'utilise en clliquant sur le bouton les fichiers se convertissent, le probleme c'est que je veux au fur et à mesure qu'un fichier excel est converti ou non une ligne qui s'ajoute dans la datagridview car dans mon cas actuellement la grille reste vite jusqu'à ce que tous le processus de conversion de fichier est terminé

Voilà, j'ai essayé de détailler ma problématique pour bien éclaircir la situation et pour vous donner idées bien précises à propos mon besoin

Merci de m'aider à trouver une solution

3 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
3 déc. 2014 à 17:45
Bonjour, tu affectes le datasource de la boucle après ta boucle.
Essaye avec la ligne
dataGridView1.DataSource = list01;
avant le foreach.
Mets aussi le Refresh dans la boucle.

Si ça ne marche pas, alors regarde du coté de BackGroundWorker
0
jakarenda Messages postés 33 Date d'inscription dimanche 24 janvier 2010 Statut Membre Dernière intervention 3 décembre 2014 1
3 déc. 2014 à 19:54
Merci Whismeril pour ta réponse

en fait si je mets le add avant le foreach il n'y a pas encore de ligne à affecter

la problematique c'est que la datagridview reste vide lors de la conversion des fichiers et moi je ne veux pas ce comportement, je veux que dès que le fichier est converti une ligne qui s'ajoute dans la datagridview (Nom du fichier, transfert vers excel(succée)

et j'ai une autre question STP, si au cas ou PDF2XL detecte un problème lorsqu'il procède à la conversion d'un fichier et par conséquent il n'est pas converti dans ce cas pour ce fichier je dois afficher dans datagridview (nom de fichier, tranfert vers excel(erreur))
avec le message d'erreur dans la colonne (Message_erreur_XLS )

est ce que le try catch(exception) pourra faire ceci ?



--
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
4 déc. 2014 à 11:17
en fait si je mets le add avant le foreach il n'y a pas encore de ligne à affecter
je ne t'ai pas parlé du add.


est ce que le try catch(exception) pourra faire ceci ?


oui ça devrait

0
Rejoignez-nous