【问题标题】:OleDbConnection() opens an Excel file in any open Excel window. But does not if there isnt a window openOleDbConnection() 在任何打开的 Excel 窗口中打开一个 Excel 文件。但是如果没有打开窗口则不会
【发布时间】:2012-01-04 00:30:46
【问题描述】:

我正在编写一个应用程序,它使用OleDbAdapter 来访问 Excel 文件中的信息。当我尝试创建与 Excel 文件的连接时,如果用户在其桌面上打开了另一个(不相关的)Excel 文件,则适配器连接到的文件会在此窗口中以只读格式打开。如果用户没有打开 Excel 实例,则文件将保持隐藏状态。

这是我的代码:

foreach (item app in apps)

{   

   DataTable dt = new DataTable();

   string CnStr = ("Provider=Microsoft.Jet.OLEDB.4.0;" + ("Data Source="
                  + ((app.FilePath) + (";" + "Extended Properties=\"Excel 8.0;\""))));

   string OleDbString = ("Select * from [" + app.SheetName + "$]");                              

   OleDbDataAdapter Adapter = new OleDbDataAdapter();

   var conn = new OleDbConnection(CnStr);
   conn.Open(); <----------------------------This is where the files are being opened.

   var cmd = new OleDbCommand(OleDbString, conn);

   Adapter.SelectCommand = cmd;


   Adapter.Fill(app.DataTable);

   conn.Close();

   Adapter.Dispose();

}

有谁知道为什么OleDbConnection() 会在 Excel 实例打开时打开文件,但如果没有打开则不会?

【问题讨论】:

  • 这个运气好吗?我遇到了完全相同的问题。

标签: excel datatable oledb oledbconnection


【解决方案1】:

您应该发布代码来初始化您的 apps 变量。您的问题的答案很可能就在那里。 它使用 GetObject 或 CreateObject 方法吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多