Exception while Exporting Datagridview data with Images to Excel...

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • shaliniraji
    New Member
    • Jan 2015
    • 15

    Exception while Exporting Datagridview data with Images to Excel...

    Hi Everyone,

    I have datagridview in that 17 columns are text columns and 5 columns are Image columns,when I'm trying to export whole gridview data's along with images to EXCEL,getting "HRESULT: 0x800A03EC" Error..While debugging the code I'm getting the error on image column not able to export..
    Can anybody help us to resolve this issue..


    Here is my code which i used:

    Code:
    private void btnexportexcel_Click(object sender, EventArgs e)
             {
                 try
                 {
                     SaveFileDialog savefile = new SaveFileDialog();
                     savefile.Filter = "Excel (*.xls)|*.xls";
                     if (savefile.ShowDialog() == DialogResult.OK)
                     {
                         if (!savefile.FileName.Equals(string.Empty))
                         {
                             FileInfo finfo = new FileInfo(savefile.FileName);
                             if (finfo.Extension.Equals(".xls"))
                             {
                                 Excel.Application xlApp;
                                 Excel.Workbook xlWorkBook;
                                 Excel.Worksheet xlWorkSheet;
                                 object misValue = System.Reflection.Missing.Value;
    
                                 xlApp = new Excel.Application();
                                 xlWorkBook = xlApp.Workbooks.Add(misValue);
                                 xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
                                 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))
                                         {
                                                 string image =Convert.ToString(dataGridView1.CurrentRow.Cells[i].Value); 
                                                 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;
                                                 xlWorkSheet.Shapes.AddPicture(image, 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;
                                         }
                                         
                                     }
                                 }
    
                                 xlWorkBook.SaveAs(savefile.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 " + savefile.FileName);
    
                             }
                             else
                             {
                                 MessageBox.Show("Invalid file type");
                             }
                         }
                         else
                         {
                             MessageBox.Show("You did pick a location " + "to save file to");
                         }
                     }
                 }
    
                 catch (Exception ex)
                 {
                     MessageBox.Show("Exception Occured", ex.Message);
                 }      
             }
    Last edited by Rabbit; Apr 22 '15, 06:24 PM. Reason: Please use [code] and [/code] tags when posting code or formatted data.
Working...