string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";"
      + "Extended Properties='Excel 8.0;HDR=YES'";
OleDbConnection Conn = new OleDbConnection(connString);
OleDbCommand objCmd = new OleDbCommand();
objCmd.Connection = Conn;
Conn.Open();objCmd.CommandText = @"CREATE TABLE [Sheet1$](FirstName Char(255), LastName char(255))"; 
objCmd.ExecuteNonQuery();错误是
不能修改表 'Sheet1$' 的设计。它在只读数据库中。

解决方案 »

  1.   

    改成
    objCmd.CommandText = @"CREATE TABLE [Sheet1](FirstName Char(255), LastName char(255))"; 
    即可另外,你的xls文件的属性去掉只读属性,Excel程序不能打开这个文件,进程中的excel.exe关掉
      

  2.   

         在网上找到的,这种方法也可以导出数据到Excel
     //往Excel写入数据,excelTable 为数据源
            public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath)
            {
                //Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.ApplicationClass();
                Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); 
                try
                {
                    app.Visible = false;
                    Workbook wBook = app.Workbooks.Add(true);
                    Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
                    if (excelTable.Rows.Count > 0)
                    {
                        int row = 0;
                        row = excelTable.Rows.Count;
                        int col = excelTable.Columns.Count;
                        for (int i = 0; i < row; i++)
                        {
                            for (int j = 0; j < col; j++)
                            {
                                string str = excelTable.Rows[i][j].ToString();
                                wSheet.Cells[i + 2, j + 1] = str;
                            }
                        }
                    }                int size = excelTable.Columns.Count;
                    for (int i = 0; i < size; i++)
                    {
                        wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;
                    }
                    //设置禁止弹出保存和覆盖的询问提示框 
                    app.DisplayAlerts = false;
                    app.AlertBeforeOverwriting = false;
                    //保存工作簿 
                    wBook.Save();
                    //保存excel文件 
                    app.Save(filePath);
                    app.SaveWorkspace(filePath);
                    app.Quit();
                    app = null;
                    return true;
                }
                catch (Exception err)
                {
                    MessageBox.Show("导出Excel出错!错误原因:" + err.Message, "提示信息",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return false;
                }
                finally
                {
                }
            }
      

  3.   

    这种方法我会啊 是调用Excel程序去执行的
    但是我要OleDb啊