使用c#OLEDB连接更新excel中的单元格
我的问题需要你的帮助: 我这里有一个代码,它使用c#更新excel中的单元格。我的问题是我必须首先打开我的excel文件,这样它才能更新单元格。我需要做的是在不打开excel文件的情况下更新单元格。可能吗 这就是我到目前为止的情况:使用c#OLEDB连接更新excel中的单元格,c#,excel,oledb,C#,Excel,Oledb,我的问题需要你的帮助: 我这里有一个代码,它使用c#更新excel中的单元格。我的问题是我必须首先打开我的excel文件,这样它才能更新单元格。我需要做的是在不打开excel文件的情况下更新单元格。可能吗 这就是我到目前为止的情况: private void WOupdate() { string WOExcel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\t-jjt
private void WOupdate()
{
string WOExcel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\t-jjtabije\\Desktop\\WO And CAO Update.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES;TypeGuessRows=0;ImportMixedTypes=Text'";
string conStr, sheetName;
conStr = string.Empty;
//Get the name of the First Sheet.
using (OleDbConnection kuneksyon = new OleDbConnection(WOExcel07ConString))
{
using (OleDbCommand utos = new OleDbCommand())
{
using (OleDbDataAdapter oda = new OleDbDataAdapter())
{
utos.Connection = kuneksyon;
kuneksyon.Open();
DataTable dtExcelSchema = kuneksyon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
kuneksyon.Close();
utos.Connection = kuneksyon;
utos.CommandText = "UPDATE [" + sheetName + "] SET [LTE WO]= '" + Path.GetFileName(WOfilename) + "', [REFARM LTE BW]='" + WObw.ToString() + "', [WO Status-LTE]='" + WOstat.ToString() + "' WHERE SITEID= '" +WOsiteid.ToString()+ "'";
kuneksyon.Open();
MessageBox.Show(WOfilename + WOsiteid + WOservice + WObw + WOstat);
oda.SelectCommand = utos;
utos.ExecuteNonQuery();
kuneksyon.Close(); ;
}
}
}
}
为什么不想打开Excel文件?你只是不想启动Excel?或者您需要使用第二个进程处理该文件?我想如果不锁定文件,就很难更改某物。请准确解释您为什么需要这些,然后我们可以更好地帮助您。如果更新的值在Excel文件中,那么只有您的心理能力才能确定更新的值是什么。我正在制作一个自动化应用程序,它将自动更新Excel中的状态。因此,我不希望用户打开excel以减少用户的工作量。因此,用户输入数据,然后您需要使用新输入的数据更新excel文件?嗯,您觉得这个小细节与原始问题无关?