C#通过OleDb读取打开的Excel文件

我需要使用.NET 3.5连接到打开的 Excel 2003文件

看来我试图使用的OleDb连接只需要该文件。 但是我需要在Excel中同时打开这个文件。

非locking阅读是可能的吗?

编辑:我打开它之前通过复制文件解决这个问题。

这看起来像一个类似的问题: 用OLEDB写入excel文件

这是否适合你?

你打开Excel文档时传入了什么参数? 您可以将Workbook.Open()中的“ReadOnly”参数设置为true吗? 看到这里。

这个问题似乎没有答案。 我不能删除它….

我的解决scheme是 – 在计时器上运行macros来保存有问题的Excel文件,C#应用程序将文件复制到另一个文件并使用OleDb读取。

请参阅下面的代码如何获取Excel数据的信息到数组中。 然后,您将在该Excel表单上执行任何validation。

var fileName = @"D:\Pavan\WorkDiployed.xlsx"; var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=Excel 12.0;", fileName); OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString); OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", con); con.Open(); System.Data.DataSet excelDataSet = new DataSet(); cmd.Fill(excelDataSet); DataTable data = excelDataSet.Tables[0]; DataRow[] arrdata = data.Select(); foreach (DataRow rw in arrdata) { object[] cval = rw.ItemArray; } con.Close(); MessageBox.Show (excelDataSet.Tables[0].ToString ());