【问题标题】:OLEDB Does not return first row of excel fileOLEDB 不返回 excel 文件的第一行
【发布时间】:2013-04-09 12:33:17
【问题描述】:

我正在使用 Microsoft.ACE.OLEDB.12.0 连接到 Microsoft excel 文件并从中获取数据。我使用 Visual Studio 2012 用 C# 语言编写代码。 这是我的代码:

public DataTable getData(string fileName, string sheetName)
{
    connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" 
                      + fileName
                      + "';Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'";

    errorCode = ErrorDefinition.ERROR_NOERROR;
    errorMessage = "";
    DataTable dt = new DataTable();            
    try
    {
            string query = "SELECT * FROM [" + sheetName + "]";
            OleDbConnection con = new OleDbConnection(connectionString);
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, con);
            dataAdapter.Fill(dt);
    }
    catch (Exception exp)
    {
            errorCode = ErrorDefinition.ERROR_OLEDBERROR;
            errorMessage = exp.Message;
    }
    return dt;
}

问题是dt 不包含文件中指定工作表的第一行。它有什么问题?

【问题讨论】:

    标签: c# oledb


    【解决方案1】:

    在您的连接字符串中,您使用设置"HDR=YES",这意味着 OleDb 将 Excel 文件的第一行视为包含当前工作表所表示的表字段名称的行。

    使用"HDR=NO" 向OleDb 表明第一行包含数据,并且列名是自动命名的,在进行中。如“F1”、“F2”、“F3”等......

    【讨论】:

      【解决方案2】:

      在连接字符串中尝试HDR=NO

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多