string strConn = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + "c:\\Excel.xls" + "; Extended Properties = 'Excel 8.0;HDR = Yes;IMEX = 1'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//返回架构
System.Data.DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"});
      
for(int k = 0;k < dtSheetName.Rows.Count;k++)
{
if(dtSheetName.Rows[k]["TABLE_NAME"].ToString().EndsWith("Print_Area"))
 
                  {  Console.WriteLine(dtSheetName.Rows[k]["TABLE_NAME"].ToString());
}
}

解决方案 »

  1.   

    TO: goodoycg(成功)
    你的代码我试过了,没有出错,但是也什么都没有显示,不知道为什么??
      

  2.   

    我把代码改了一下:
       
                for(int k = 0;k < dtSheetName.Rows.Count;k++)
                {
                    
                        Console.WriteLine("Table Name"+k);
                        Console.WriteLine(dtSheetName.Rows[k]["TABLE_NAME"].ToString());
                   
                }
    结果显示有一个表名是重复的一个有$一个没有$
    Table Name0
    Sheet1$
    Table Name1
    结果
    Table Name2
    结果$
    不明白为什么“结果”会有两个??
      

  3.   

    循环中的IF语句改成如下:
    for(int k = 0;k < dtSheetName.Rows.Count;k++)
    {
    if(!dtSheetName.Rows[k]["TABLE_NAME"].ToString().EndsWith("Print_Area"))
     
                      {  Console.WriteLine(dtSheetName.Rows[k]["TABLE_NAME"].ToString());
    }
    Sheet1$
    结果
    结果$
    就是sheet的名称
      

  4.   

    为什么“结果”的这个会有两个呢?
    而Sheet1就只有一个
      

  5.   

    这个是WEB程序还是窗体程序啊?
    我正愁怎么从WEB里面导入到数据库呢?