一般的用 select * from [sheet1$] 的语句来读取数据,但是,Sheet1的名字有时后被改掉了,
比如改成"固定资产"的名字,那语句是不是就应当为 select * from [固定资产$] 的形式?
问题是,我怎么知道Sheet1是什么名字?

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3481/3481988.xml?temp=.7964289
      

  2.   

    OleDbConnection ExcelConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+pathName+@"\"+fileName+";Extended Properties=Excel 8.0;");
      OleDbCommand ExcelCommand = new OleDbCommand();
      ExcelCommand.Connection = ExcelConnection;
      OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter(ExcelCommand);  ExcelConnection.Open();
      DataTable ExcelSheets = ExcelConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,new object[] {null, null, null, "TABLE"});
     string SpreadSheetName = "["+ExcelSheets.Rows[workSheetNumber]["TABLE_NAME"].ToString()+"]";  DataSet ExcelDataSet = new DataSet();
      ExcelCommand.CommandText = @"SELECT * FROM "+SpreadSheetName;
      ExcelAdapter.Fill(ExcelDataSet);
     
      ExcelConnection.Close();   
      return ExcelDataSet;