none
Exception while Exporting Datagridview data with Images to Excel... RRS feed

  • Question

  • 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:

    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);

    }

    Thanks & Regards RAJENDRAN M

    Wednesday, April 22, 2015 9:00 AM