Bonjour,

Je dois créer un fichier excel à partir d'une datagridview qui possède plus de 100 000 lignes.
Du coup, je dois trouver une méthode rapide pour créer ce fichier sans parcourir cellule par cellule sinon c'est beaucoup trop long

J'ai trouvé une solution avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
// Get an Excel Range of the same dimensions
                    Excel.Range range = (Excel.Range)xlWorkSheet.Cells[2, 1];
                    range = range.get_Resize(rowCount, columnCount);
                    // Assign the 2-d array to the Excel Range
                    range.set_Value(Excel.XlRangeValueDataType.xlRangeValueDefault, dataMap);
Ca marche très bien pour du texte mais le problème est que la dernière colonne de chaque ligne de ma datagridview est en fait une image de type Bitmap.

Du coup, lors de l'export, au lieu d'avoir l'image dans le fichier Excel généré, j'ai "System.Drawing.Bitmap".

Je n'arrive pas à trouver une solution pour incorporer du texte et des images dans ma matrice dataMap

Voilà mon code pour remplir le tableau dataMap :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Object[,] dataMap= new Object[rowCount, columnCount];
                    for (int i = 0; i <= dgw.RowCount - 1; i++)
                    {
                        for (int j = 0; j <= dgw.ColumnCount - 1; j++)
                        {
                             DataGridViewCell cell = dgw[j, i];
                             if (cell.Value.GetType() == typeof(Bitmap))
                             {
                                 Bitmap b = (Bitmap)cell.Value;
                                 dataMap[i, j] = b;
                             }
                             else
                             {
                                 dataMap[i,j] = cell.Value;
                             }
                        }
                    }
Merci à vous

Bonne soirée.