小编Sco*_*ott的帖子

OleDbConnection()在任何打开的Excel窗口中打开Excel文件.但如果没有窗户打开则不会

我正在编写一个应用程序,它使用一个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();

}
Run Code Online (Sandbox Code Playgroud)

有人知道为什么OleDbConnection()如果Excel的一个实例是打开的话会打开一个文件,但如果没有,那就不会打开文件?

oledb datatable excel oledbconnection

6
推荐指数
1
解决办法
759
查看次数

标签 统计

datatable ×1

excel ×1

oledb ×1

oledbconnection ×1