Hi,

I want to save datagridview data in Excel sheet as per user spcify the location for that I write some code but It's not working properly. If I spacify the location in the code then It alway overwite the data on previous data. In Savedialog Box when I spcify the location It create a Excel File but can not open. Other wise It Save that file and again show the savedialogbox with the name of Book.

SqlConnection cnn;
            string connectionString = null;
            string sql = null;
            string data = null;
            int i = 0;
            int j = 0;

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

            connectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\cement.mdf;Integrated Security=True;User Instance=True";
            cnn = new SqlConnection(connectionString);
            cnn.Open();
            sql = "SELECT * FROM stcaccshu";
            SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
            DataSet ds = new DataSet();
            dscmd.Fill(ds);

            for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
            {
                for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
                {
                    data = ds.Tables[0].Rows[i].ItemArray[j].ToString();
                    xlWorkSheet.Cells[i + 1, j + 1] = data;
                }
            }


            Stream myStream;
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*";
            saveFileDialog1.FilterIndex = 1;
            saveFileDialog1.RestoreDirectory = true;

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {

                if ((myStream = saveFileDialog1.OpenFile()) != null)
                {

                    StreamWriter wText = new StreamWriter(myStream);
                   xlWorkBook.SaveAs("abc",Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                }
            }

[B]When I spacify The Location In Code

                     xlWorkBook.SaveAs("@ d:\\praj.SAI", Excel.XlFileFormat.xlWorkbookNormal,misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                    xlWorkBook.Close(true, misValue, misValue);[/B]
               
                    xlApp.Quit();

                    releaseObject(xlWorkSheet);
                    releaseObject(xlWorkBook);
                    releaseObject(xlApp);
             
                    MessageBox.Show("Excel file created , you can find the file c:\\csharp.net-informations.xls");
              
        }

Please Help Me...

The Excel file is convert properly but I have problem in SaveDialogBox It not save properly. It display error message "File can not be read".

I use very similar code and have same problem. Whats wrong?

Thx for help to all. R.

This article has been dead for over six months. Start a new discussion instead.