c# - 无法使用 C# 读取我的 Excel 文件

标签 c# ado.net excel-2007

我有一个 Excel 2007 文件“my.xlsx”和一个名为“States”的工作表,并且我有以下代码

 using (OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\my.xlsx;Extended Properties='Excel 12.0 Xml;HDR=NO'"))
        {
            OleDbCommand cmd = new OleDbCommand("select * from [States]", con);

            con.Open();
            OleDbDataReader reader = cmd.ExecuteReader();
            while(reader.Read())
                Console.WriteLine(reader[0]);
        }

它不断抛出异常,提示“Microsoft Office Access 数据库引擎找不到对象‘States’。请确保该对象存在并且您正确拼写了它的名称和路径名。”。

有人可以帮忙看看我的代码有什么问题吗?

最佳答案

我知道这可能不是您想听到的,但是您和许多人一样,在尝试使用 oledb 读取 excel 文件时遇到了困难...

我在使用 NPOI 等库从 C# 读取 Excel 文件时运气更好:

http://npoi.codeplex.com/ (推荐)

http://nexcel.sourceforge.net/

http://sourceforge.net/projects/koogra/

关于c# - 无法使用 C# 读取我的 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286094/

相关文章:

c# - 如何在 LINQ-TO-SQL 中映射来自 ExecuteQuery() 的额外字段但保留 LINQ 实体

c# - 如何引用某些 Windows 元素(滚动条、插入式选项按钮等)使用的 BG 颜色?

c# - 使用 Entity Framework 减少数据库调用

c# - Java 中的 DataTable 等价物

c# - 无法创建泛型方法 : "T" not found

vba - 运行时错误1004 excel找不到文本文件来刷新此外部范围

c# - Entity Framework 与来自不同数据库的相同表名冲突

c# - 将 CheckBox 列添加到具有持久性的 GridView

excel - 将两个嵌套小计应用到 Excel 2007 中的表格

Excel countif 单元格中的日期大于或等于另一个单元格中的日期