【问题标题】:OleDBException when reading an open excel file读取打开的 excel 文件时出现 OleDBException
【发布时间】:2013-12-17 14:07:59
【问题描述】:

我有一个 excel 文件和一个 oledb 连接到它。在 Windows 中打开文件时读取数据时,会引发以下错误(Adapter.Fill 方法)。

但是,当不手动打开文件时,代码运行良好。

private System.Data.DataSet GetExcelData()
{
    // Create new DataSet to hold information from the worksheet.
    System.Data.DataSet objDataset1 = new System.Data.DataSet();
    DataTable dt = new DataTable();
    try
    {
        string path = ConfigurationManager.AppSettings["ExcelFilePath"];
        //string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";

        string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;\"";

        OleDbConnection objConn = new OleDbConnection(connectionString);
        objConn.Open();

        //String strConString = "SELECT * FROM [Data Version5.2$A2:ZZ] where [Status] = 'aa'";//Status
        String strConString = "SELECT * FROM [Data Version5.2$A2:ZZ] where [Status] IS NULL OR [Status]='SubReport'";//Status SubReport

        OleDbCommand objCmdSelect = new OleDbCommand(strConString, objConn);
        OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();

        // Pass the Select command to the adapter.  
        objAdapter1.SelectCommand = objCmdSelect;

        // Fill the DataSet with the information from the work sheet.
        objAdapter1.Fill(objDataset1, "ExcelData");

        objConn.Close();
    }
    catch (Exception ex)
    {
        throw ex;
    }

    return objDataset1;
}

错误信息是

【问题讨论】:

标签: c# excel file adapter


【解决方案1】:

假设您不需要写入文件,请尝试调整您的连接字符串以包含只读模式 (Mode=Read)。我的所有文件中都有这个(我不需要写入文件),并且从已经打开的工作簿中读取我从来没有遇到过问题:

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
    path + ";Mode=Read;Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;\"";

我也不倾向于将 Excel 文件读取为 XML,因此我的连接字符串的扩展属性是 Excel 12.0;HDR=YES;IMEX=1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 2021-12-21
    • 2014-06-25
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多