C#阅读打开Excel通过OleDb的
我需要连接到一个开放 Excel 2003中的文件使用.net 3.5C#阅读打开Excel通过OleDb的
看来,我想使用希望该文件专门的OLEDB连接文件。但我需要在Excel中同时打开此文件。
是非锁定读数可能吗?
编辑:我打开它之前通过复制文件解决了这个问题。
这个问题似乎没有答案。我不能删除它......
我的解决方案是 - 在定时器上运行宏以保存有问题的Excel文件,并且C#应用程序正在将该文件复制到另一个文件并使用OleDb读取它。
打开Excel文档时传入了哪些参数?您可以将Workbook.Open()中的“ReadOnly”参数设置为true吗?见here.
我试图将OleDb连接字符串中的Mode设置为Read并且共享Deny None并且都不工作。 – 2011-04-19 13:44:12
好的,首先 - 您是否可以按照我上面的说明打开文档?如果是这样,你可以发布你正在使用的OleDb连接代码吗?越多的信息越好。 – dotNetkow 2011-04-19 14:46:15
cnnString =“Provider = Microsoft.Jet.OLEDB.4.0; Data Source =”+ this.path +“; Mode = Share Deny None; Extended Properties = \”Excel 8.0; HDR = YES \“”; 2011-04-19 15:02:49
请参考下面的代码如何获取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());
没有人不能写在一个独立的文件。我不能从已经在其他地方打开的文件读取。 – 2011-04-18 10:58:20