Excel

superismali Messages postés 38 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 8 janvier 2007 - 16 nov. 2006 à 18:34
rudhf Messages postés 62 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 30 juin 2007 - 16 nov. 2006 à 21:00
Salut a vous,
J'aimerai bien écrire dans un fichier excel sans passer par un datagrid.
Merci d'avance.

Superismali

1 réponse

rudhf Messages postés 62 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 30 juin 2007 2
16 nov. 2006 à 21:00
if (saveFD1.ShowDialog() == DialogResult.OK)
            {
                monFichier3 = saveFD1.FileName;
                try
                {
                    xlApp3 = new Microsoft.Office.Interop.Excel.ApplicationClass();
                    xlApp3.Visible = false;
                    //Get a new workbook.
                    xlClasseur3 = (Microsoft.Office.Interop.Excel._Workbook)(xlApp3.Workbooks.Add(M));
                    xlFeuil1 = (Microsoft.Office.Interop.Excel._Worksheet)xlClasseur3.ActiveSheet;

                    // Changer la valeur max de la barre de progression
                    nbLign = dtRapprochement.Rows.Count;
                    // Copier les noms des colonnes
                    int i = 0;
                    foreach (DataColumn uneColonne in dtRapprochement.Columns)
                    {
                        xlRng1 = xlFeuil1.get_Range(Convert.ToChar(65 + i).ToString() + "1", M);
                        xlFeuil1.Cells[1, i + 1] = uneColonne.ColumnName.Trim();
                        xlRng1.Interior.ColorIndex = Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic;
                        xlRng1.Font.Bold = true;
                        xlRng1.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, M);
                        xlRng1.EntireColumn.AutoFit();
                        i++;
                    }

                   
                    // Copier toutes les cellules du datagridview
                    // j=2 on commence à la 2eme ligne dans le fichier excel
                    int j = 2;
                    foreach (DataRow uneLigne in dtRapprochement.Rows)
                    {
                        i = 1; // si i=1 alors 65-1+1 donne 65<=>A et ainsi on aura la lettre de la colonne puis on juxtapose le numero de la ligne
                        foreach (DataColumn uneColonne in dtRapprochement.Columns)
                        {
                            xlRng1 = xlFeuil1.get_Range(Convert.ToChar(65 + i - 1).ToString() + j.ToString(), M);
                            xlFeuil1.Cells[j, i] = uneLigne[uneColonne];
                            xlRng1.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, M);
                            xlRng1.EntireColumn.AutoFit();
                            i++;
                        }
                        xlFeuil1.Columns.AutoFit();
                        j++;
                    }

                    try
                    {
                        xlClasseur3.SaveAs(monFichier3, M, M, M, M, M, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, M, M, M, M, M);

                    }
                    catch(Exception ex)
                    {
                        MessageBox.Show("erreur" + ex.Message);
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show("erreur"+ ex.Message);
                }
            }

private void SaveAs(string monFichier3)
        {
            try
            {
                xlClasseur3.SaveAs(monFichier3, M, M, M, M, M, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, M, M, M, M, M);           
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }

        private Microsoft.Office.Interop.Excel.ApplicationClass xlApp3;
        private Microsoft.Office.Interop.Excel._Workbook xlClasseur3;

        private Microsoft.Office.Interop.Excel._Worksheet xlFeuil1;
        private Microsoft.Office.Interop.Excel.Sheets xlFeuilles;
        private Microsoft.Office.Interop.Excel.Range xlRng1;
        System.Object M = System.Reflection.Missing.Value;
        private string monFichier3;
       private int nbLign;
N'oublie pas d'ajouter la référence COMMicrosoft.Office.Interop.Excel
0
Rejoignez-nous