我需要使用.NET 3.5连接到一个打开的Excel 2003文件。
看起来我正在尝试使用的OleDb连接需要独占该文件。但是我需要在Excel中同时打开这个文件。
是否可以进行非锁定读取?
编辑:我通过在打开文件之前复制文件来解决了这个问题。
看起来我正在尝试使用的OleDb连接需要独占该文件。但是我需要在Excel中同时打开这个文件。
是否可以进行非锁定读取?
编辑:我通过在打开文件之前复制文件来解决了这个问题。
这个问题似乎没有答案,而且我无法删除它...
我的解决方案是 - 在计时器上运行宏以保存相关的Excel文件,然后使用C#应用程序将该文件复制到另一个文件中,并使用OleDb读取它。
请参考以下代码,了解如何将Excel数据信息转化为数组。然后,您可以对该Excel表格执行任何验证。
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 ());
这似乎是一个类似的问题: 使用OLEDB写入Excel文件
这对你有用吗?