如何使用c#代码和oledb更新任何Excel单元格时强制更新依赖单元格?我的网站托管在云环境中。用户点击按钮,当时我的代码从数据库中获取所需的值,并更新少量的Excel单元格,并提示用户下载此Excel表单。大量的计算依赖于这个更新的excel单元。如何使用c#代码和oledb更新任何Excel单元格时强制更新依赖单元格?
当我手动更新这个单元格时,所有的计算都能正常工作,但是当使用c#代码进行更新时,它不起作用。
Pleasse这里查看我的代码
String connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0 XML;HDR=NO\";";
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new System.Data.OleDb.OleDbConnection(connstring);
MyConnection.Open();
myCommand.Connection = MyConnection;
//term in months
sql = "UPDATE [InputSheet$C7:C7] SET F1 = " + model.Lender.ApprovedTerm;
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
//intrest rate
sql = "UPDATE [InputSheet$C8:C8] SET F1 = " + model.Lender.ContractRate;
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
//loan amount
sql = "UPDATE [InputSheet$C9:C9] SET F1 = " + model.Lender.ApprovedLoanAmt;
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
MyConnection.Close();
我不想使用Open XML。有没有其他方法来强制更新依赖单元格?
你是什么意思“依赖细胞”?你的意思是你想迫使公式重新计算?它本身不会这样做。 *为什么*你不想使用OpenXML?使用像EPPlus这样的库直接更新单元更快,更容易,更安全(等),*不需要JET驱动。它支持公式重新计算(http://epplus.codeplex.com/wikipage?title=About%20Formula%20calculation&referringTitle=Documentation) –
是的,我想迫使公式重新计算。我不想使用开放式XML,因为每当我们在门户(云环境)上推新版本时,我们都需要安装Office及其OpenXML SDK。 –
不,你不!这是195%错误!事实上,这是OLEDB提供商需要额外安装。我认为你将Open XML与Office Interop混为一谈。 Open XML SDK只是用于处理Office文件的库。您可以将其添加到您的项目中,就像其他任何程序集一样,或者像EPPlus –