C#中获取Excel文件的第一个表名

来源:互联网 发布:淘宝日用杂货铺 编辑:程序博客网 时间:2024/06/06 09:43

Excel文件中第一个表名的缺省值是Sheet1$, 但有时也会被改变为其他名字. 如果需要在C#中使用OleDb读写Excel文件, 就需要知道这个名字是什么. 以下代码就是实现这个功能的:

using System;
using System.IO;
using System.Data;
using System.Data.OleDb;

namespace Skyiv.Ben.Util
{
  
sealed class Pub
  
{
        
public static string GetExcelFirstTableName(string excelFileName)
        
{
            
string tableName = null;
            
if (File.Exists(excelFileName))
            
{
              
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet."+
                
"OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + excelFileName))
              
{
                  conn.Open();
                  DataTable dt 
= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                  tableName 
= dt.Rows[0][2].ToString().Trim();
              }

          }

            
return tableName;
        }

    }

}


namespace Skyiv.Ben.Test
{
  
using Skyiv.Ben.Util;
  
  
class MainTest
  
{
    
static void Main(string [] args)
    
{
      
foreach (string s in args)
        Console.WriteLine(
"[{0}] => [{1}]", s, Pub.GetExcelFirstTableName(s));
    }

  }

}