我正在使用一些使用OleDbConnection将数据从Excel文件加载到DataTable的代码。目前,它默认为第一页,但得到它使用下面的代码的名字:无法使用GetOleSchemaTable获取图纸名称()
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myFilename.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES"""
DataTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (schemaTable.Rows.Count > 0)
return schemaTable.Rows[0]["TABLE_NAME"].ToString();
else
return "Sheet1$"
当Excel文件(我们是从第三方接收)开始含命名范围这已工作的罚款,直到最近。我没有隐藏的床单,我可以找到。
现在
schemaTable.Rows[0]["TABLE_NAME"].ToString()
返回第一个系列的名称。
是否有什么不同我可以用我的schemaTable对象来标识工作表中的工作表而不是名称范围?
什么其他列包含哪些内容?输出GetOleDbSchemaTable的完整内容时,是否注意到包含任何允许区分范围和表格的列的任何列?我可以看到'TABLE_TYPE'列可以包含所需的信息。以下是返回的所有列的列表:http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid.tables.aspx – Heinzi 2011-06-14 09:09:04