2017-09-18 38 views
0

我試圖通過編寫此代碼更新EXECL表paricular表更新Excel單元格:無法woksheet使用OLEDB連接

connExcel.Open(); 
    string SheetName = null; 
    DataTable dtExcelSchema = null; 
    dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
    //checking sheet name 
    if (dtExcelSchema.Rows[2]["TABLE_NAME"].ToString().Contains("_xlnm#Database")) 
    { 
     SheetName = dtExcelSchema.Rows[2]["TABLE_NAME"].ToString(); 
    } 

    if (!dtExcelSchema.Rows[2]["TABLE_NAME"].ToString().Contains("_xlnm#Database")) 
    { 
     SheetName = dtExcelSchema.Rows[2]["TABLE_NAME"].ToString(); 
    } 
    dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, SheetName, null }); 
    OleDbCommand cmd = new OleDbCommand("UPDATE [" + SheetName + "] SET F11=22052", connExcel); 
    int result = cmd.ExecuteNonQuery(); 
    Console.WriteLine(result); 
    connExcel.Close(); 

但這種更新查詢更新整個列,而我只是想更新特定Excel中的單元格表示符合excel表單的'C9'。

任何幫助將不勝感激。

我的Excel工作表看起來是這樣的.. Excel template

回答

0

我想你是誤會了語法。你這樣做:

OleDbCommand cmd = new OleDbCommand("UPDATE ["+ SheetName +"$C9:C9] SET F11=22052", connExcel); 
+0

我得到這個錯誤「Microsoft Access數據庫引擎找不到對象''表I $'$ C9:C9'」。你也可以告訴我如何更新excel表中的第9行 – abhishek

+0

@abhishek這個錯誤一般發生在excel文件中沒有'Table I $'$ C9:C9'時。 –

+0

@abhishek你想更新第9行的單元嗎? –