如何从Excel获取列表名称?

时间:2014-02-11 10:08:48

标签: c# excel oledb oledbcommand

如何从Excel文件中获取列表名称?我从Excel中读取的实际脚本是:

DataSet da = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter();
string name = "PP_s_vypocty"; // I actually using manualy name for read, but i want extract name from file.
string FileName = fullpath;
string _ConnectionString = string.Empty;
string _Extension = Path.GetExtension(FileName);
// Checking for the extentions, if XLS connect using Jet OleDB
if (_Extension.Equals(".xls", StringComparison.CurrentCultureIgnoreCase))
{
    _ConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0};Extended Properties=Excel 8.0", FileName);
}
// Use ACE OleDb
else if (_Extension.Equals(".xlsx", StringComparison.CurrentCultureIgnoreCase))
{
    _ConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", FileName);
}

OleDbConnection con = new OleDbConnection(_ConnectionString);
string strCmd = "SELECT J38 FROM " + name;
OleDbCommand cmd = new OleDbCommand(strCmd, con);

try
{
     con.Open();
     da.Clear();
     adapter.SelectCommand = cmd;
     adapter.Fill(da);
     UniqueValue.money.Add(double.Parse(da.ToString()));
}

catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}


finally
{
    con.Close();
}

我想从excel列表中提取名称,而无需手动定义。

1 个答案:

答案 0 :(得分:0)

您可以使用OleDbConnection.GetSchema返回数据表,该数据表包含数据库包含的表列表(在您的案例中为excel工作表)