hi
the code which i use to export a data table to excel works fine.....
but when i open the excel file it gives me the following warning

THE FILE YOU ARE TRYING TO OPEN IS IN A DIFFERENT FORMAT THAN SPECIFIED BY THE EXTENSION. VERIFY THAT THE FILE IS NOT CORRUPTED AND THAT IT IS FROM A TRUSTED SOURCE.

the file opens anyway and has all the data...
but why is the warning coming up.....
i have posted the code which i use below....

private void Excel_FromDataTable(DataTable dt)
        {
            // Create an Excel object and add workbook...
            Excel.ApplicationClass excel = new Excel.ApplicationClass();
            Excel.Workbook workbook = excel.Application.Workbooks.Add(true); // true for object template???

            // Add column headings...
            int iCol = 0;
            foreach (DataColumn c in dt.Columns)
            {
                iCol++;
                excel.Cells[1, iCol] = c.ColumnName;
            }
            // for each row of data...
            int iRow = 0;
            foreach (DataRow r in dt.Rows)
            {
                iRow++;

                // add each row's cell data...
                iCol = 0;
                foreach (DataColumn c in dt.Columns)
                {
                    iCol++;
                    excel.Cells[iRow + 1, iCol] = r[c.ColumnName];
                }
            }

            // Global missing reference for objects we are not defining...
            object missing = System.Reflection.Missing.Value;

            
            // If wanting to Save the workbook...
            workbook.SaveAs( opPath ,
                Excel.XlFileFormat.xlXMLSpreadsheet, missing, missing,
                false, false, Excel.XlSaveAsAccessMode.xlNoChange,
                missing, missing, missing, missing, missing);
            

            // If wanting to make Excel visible and activate the worksheet...
            excel.Visible = true;
            Excel.Worksheet worksheet = (Excel.Worksheet)excel.ActiveSheet;
            ((Excel._Worksheet)worksheet).Activate();

            // If wanting excel to shutdown...
            ((Excel._Application)excel).Quit();
            MessageBox.Show("Analysis Complete.");
        }

Please tell me what is going wrong...
i use Microsoft office 2007

a bit out of time, but for future searches:

You use

Excel.XlFileFormat.xlXMLSpreadsheet

which is actually an XML file. When you use the extension of an Excel workbook does not expect an XML file, so the message is shown.
Excel won't show that message when you use:

//extension depends on the version of your excel
XlFileFormat.xlWorkbookDefault
//or in combination with extension .xlsx
XlFileFormat.xlOpenXMLWorkbook
//or in combination with extension .xlsm
XlFileFormat.xlOpenXMLWorkbookMacroEnabled

You can also select one of the previous excel-version-file-filters. You can use the VBA macro editor of excel to find out which XlFileFormats can be used.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.