Exporter des données DataGridView avec des images dans Excel, HTML ou Word avec un format de table approprié

J'ai une vue de grid de données avec des images chargées. La table qui est la source de cette grid de données a un path d'access aux images et je charge des images en utilisant ce path. J'ai essayé d'exporter des données vers Excel et j'ai réussi, mais il semble que cela présente des problèmes d'images. Une aide quelconque? Toute aide au lieu d'Excel, HTML ou Word ou quoi que ce soit ferait, mais fournissez une aide détaillée ou cela pose beaucoup de problèmes.

Voici le code que j'avais exporté vers Excel:

saveFileDialog1.Filter = "Excel (*.xls)|*.xls"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { if (!saveFileDialog1.FileName.Equals(Ssortingng.Empty)) { FileInfo f = new FileInfo(saveFileDialog1.FileName); if (f.Extension.Equals(".xls")) { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.ApplicationClass(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); int i = 0; int j = 0; for (i = 0; i <= dataGridView1.RowCount - 1; i++) { for (j = 0; j <= dataGridView1.ColumnCount - 1; j++) { DataGridViewCell cell = dataGridView1[j, i]; xlWorkSheet.Cells.Borders.LineStyle = Excel.XlLineStyle.xlContinuous; xlWorkSheet.Columns.AutoFit(); if (cell.Value.GetType() == typeof(Bitmap)) { xlWorkSheet.Cells[i + 1, j + 1] = ReadFile((Bitmap)cell.Value); } else { xlWorkSheet.Cells[i + 1, j + 1] = cell.Value; } } } xlWorkBook.SaveAs(saveFileDialog1.FileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); MessageBox.Show("Excel file created , you can find the file " + saveFileDialog1.FileName); } else { MessageBox.Show("Invalid file type"); } } else { MessageBox.Show("You did pick a location " + "to save file to"); } } 

Le format de la table est:

ax_no rm_no fullName Types photographie // path du file. Empreinte digitale // path du file.

Tous sont des cordes. J'ai également essayé d'utiliser Spire.dataExport et iTextSharp mais cela ne fonctionne pas.

Si vous devez placer l'image dans la cellule, essayez ce code:

 if (cell.Value.GetType() == typeof(Bitmap)) { // You have to get original bitmap path here ssortingng imagSsortingng = "bitmap1.bmp"; Excel.Range oRange = (Excel.Range)xlWorkSheet.Cells[i + 1, j + 1]; float Left =(float) ((double)oRange.Left); float Top =(float) ((double)oRange.Top); const float ImageSize=32; xlWorkSheet1.Shapes.AddPicture(imagSsortingng, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, Left, Top, ImageSize, ImageSize); oRange.RowHeight = ImageSize + 2; } else { xlWorkSheet.Cells[i + 1, j + 1] = cell.Value; } 

Regardez cet article Exportation d'un DataGridView dans un file Excel / PDF / image en utilisant la génération de rapports Reporting Services .

Consultez également Infragistics Winforms Controls Bundle . Il a UltraWinGrid très personnalisable pour visualiser vos données de table et puissantes bibliothèques Excel qui n'exigent pas que Excel soit installé.

Et finalement, regardez Stimulsoft Reports: il a beaucoup de formats d'export et ne nécessite pas non plus une application Excel.