【问题标题】:Reading Excel File using C#使用 C# 读取 Excel 文件
【发布时间】:2016-08-04 23:03:48
【问题描述】:

我是 C# 新手,我正在尝试使用以下代码读取 excel 文件

string conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFilePath + 
                ";Extended Properties=Excel 12.0;";
using (OleDbConnection connection = new OleDbConnection(conStr))
{
    connection.Open();
    OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
    using (OleDbDataReader dr = command.ExecuteReader())
    {
        while (dr.Read())
        {
            var row1Col0 = dr[0];
            Console.WriteLine(row1Col0);
        }
    }
}

我收到以下错误:

Sheet1$' 不是有效名称。确保它不包含无效字符或标点符号,并且不要太长。

谁能告诉我我做错了什么?

excel表格的名字是sheet.xlsx

谢谢

【问题讨论】:

  • 这是文件名。文件内选项卡上的名称是什么? IIRC 这就是床单。
  • 我附上了excel表格的图片
  • 工作表底部的选项卡名称是什么。
  • contents 是那里的名字
  • 那是工作表名称。看我的回答。

标签: c# excel


【解决方案1】:

工作表名称可能与文件名不同,您可以通过以下操作获取第一个工作表名称

首先,获取架构

DataTable dtSchema = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

然后获取第一张表的名称

var sheetName = dtSchema.Rows[0]["TABLE_NAME"].ToString();

获得command 后,您可以填充数据集并使用它的.Rows 集合

var myDataSet = new DataSet();
command.Fill(myDataSet);

工作表名称是这个

【讨论】:

  • 我会将数据放在带有command.Fill 的数据集中,然后像正常一样使用数据集
  • 能否提供一些伪代码我对 C# 很陌生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多