使用OleDbConnection::GetOleDbSchemaTable()列出excel表格
以下PowerShell代码段将通过以下方式列出excel电子表格中的所有工作表和命名范围: 但是,这不会列出表(在Excel 2003中称为列表),也不会列出引用列表的命名范围 如果我传递了一个过程或视图类型,我会得到一个消息,消息是此类型的对象不支持操作。使用OleDbConnection::GetOleDbSchemaTable()列出excel表格,excel,ado.net,oledb,Excel,Ado.net,Oledb,以下PowerShell代码段将通过以下方式列出excel电子表格中的所有工作表和命名范围: 但是,这不会列出表(在Excel 2003中称为列表),也不会列出引用列表的命名范围 如果我传递了一个过程或视图类型,我会得到一个消息,消息是此类型的对象不支持操作。 是否可以通过调整连接字符串或限制参数来列出表?尝试以下简单来源: using (var connection = (OleDbConnection)GetConnection()) { conn
是否可以通过调整连接字符串或限制参数来列出表?尝试以下简单来源:
using (var connection = (OleDbConnection)GetConnection())
{
connection.Open();
var dt = connection.GetSchema("TABLES");
var list=dt.Select().Where(w => w["TABLE_NAME"].ToString()).ToList();
//TODO:
}
请尝试以下简单来源:
using (var connection = (OleDbConnection)GetConnection())
{
connection.Open();
var dt = connection.GetSchema("TABLES");
var list=dt.Select().Where(w => w["TABLE_NAME"].ToString()).ToList();
//TODO:
}
我在一个C#WinForms应用程序中遇到了类似的问题。我知道这是不同的代码,但这可能会有所帮助。调用GetOleDbSchemaTable并查看这些表时,您会注意到,您得到的不仅仅是工作表——它还返回内部使用的表,如筛选表等。在尝试使用Excel内部表时,我看到了“此类型对象不支持操作”消息。看到这个帖子。。。我在一个C#WinForms应用程序中遇到了类似的问题。我知道这是不同的代码,但这可能会有所帮助。调用GetOleDbSchemaTable并查看这些表时,您会注意到,您得到的不仅仅是工作表——它还返回内部使用的表,如筛选表等。在尝试使用Excel内部表时,我看到了“此类型对象不支持操作”消息。看到这个帖子。。。