C# 如何将Excel中的命名范围与OleDB一起使用?

C# 如何将Excel中的命名范围与OleDB一起使用?,c#,asp.net,excel,oledb,extract,C#,Asp.net,Excel,Oledb,Extract,我正在尝试使用ASP.NET/C#从Excel中的特定命名区域提取数据。下面是我试图提取的一个示例 我想要的是使用名称“RANGE_NAMED”的“B”、“C”、“D”。有可能用OleDB实现这一点吗 致以最良好的祝愿 亚历克斯。你可以试试这个代码 using(OleDbConnection c = new OleDbConnection(con)) { c.Open(); string selectString = "SELECT * FROM [RANGE_NAMED]";

我正在尝试使用ASP.NET/C#从Excel中的特定命名区域提取数据。下面是我试图提取的一个示例

我想要的是使用名称“RANGE_NAMED”的“B”、“C”、“D”。有可能用OleDB实现这一点吗

致以最良好的祝愿


亚历克斯。

你可以试试这个代码

using(OleDbConnection c = new OleDbConnection(con))
{
    c.Open();
    string selectString = "SELECT * FROM [RANGE_NAMED]";
    using(OleDbCommand cmd1 = new OleDbCommand(selectString))
    {
          cmd1.Connection = c;
        var result = cmd1.ExecuteReader();
        while(result.Read())
        {
              Console.WriteLine(result[0].ToString());
        }
    }
}

好的,这很明显,我不知道为什么第一次它不起作用

SELECT * FROM RANGE_NAMED

我得到了B,C,D.

因为我知道查询只是从范围中提取文本数据。这可以用于对范围内的单元格执行
HasFormula
吗?如果您参考了,我想不会,因为这不是通过互操作使用的,只是OleDbI看到了该链接,只是想知道
OleDb
中是否有这样的属性。无论如何,我们可以序列化上面
结果中的范围
,并在通过读卡器读取时将其反序列化为C#中的excel范围。我只是想大声说出来——如果你能指出任何相关的信息,那就太好了。我不能让这个工作。它跳过while循环。我的命名范围中只有一个值,这会影响它吗?