我試圖寫入Excel表格中的一些數據,並在寫入必要的數據後,我想通過使它們不可編輯來防止單元格編輯。在這個操作之後,一些數據將會在表單用戶的不受保護的單元格上更新,然後我將使用這些數據並讀取它們以執行一些處理活動。使用C保護excel中的列使用C#
- 有人可以幫我一個具體的,我怎麼鎖定一個專欄在Excel中編輯?
- 你如何使用C#寫入受保護的列?
- 如何閱讀使用C#從受保護的列?
簡單引用例子會大大幫助我。 PS:如果你對VB.NET更加熟悉,即使參考瞭如何做到這一點也會有所幫助。
我試圖寫入Excel表格中的一些數據,並在寫入必要的數據後,我想通過使它們不可編輯來防止單元格編輯。在這個操作之後,一些數據將會在表單用戶的不受保護的單元格上更新,然後我將使用這些數據並讀取它們以執行一些處理活動。使用C保護excel中的列使用C#
簡單引用例子會大大幫助我。 PS:如果你對VB.NET更加熟悉,即使參考瞭如何做到這一點也會有所幫助。
對於Excel單元格將在不可編輯的模式,兩件事情必須要照顧:
1)Excel單元格應鎖定
ws.get_Range(「位置」,類型.Missing).Locked = true;
2)的Excel工作表也應該鎖定
ws.Protect("SecurityCode", true, true, true, Type.Missing, Type.Missing, true, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); //where ws is the worksheet object
關於第二個問題,通過一個受保護的單元以讀取,這可以直接
string CellValue = ws.get_Range("Location", Type.Missing).Value2.ToString();
//Now depending upon the CellValue you can write your own Logic.
讓我用這個工作,並檢查出來。 – Shouvik 2013-05-13 09:12:44
是的。如果你想讓整個列不可編輯,只需包含ws.get_Range(「Location」,Type.Missing).EntireColumn.Locked = true; – 2013-05-13 09:14:29
完成從什麼我發現你不能用普通的Excel做到這一點......所以不會有通過C#或VB.NET來做到這一點的方法......恕我直言,「期望將這些數據放入Excel Worksh」 eet將回來未修改,其他部分可由用戶編輯「充其量似乎冒險... – Yahia 2013-05-13 09:10:26
風險如何?我允許用戶在工作表中編輯一些值,同時保護編輯中的其他值。我曾經見過擅長作爲標題和標籤的單元格是不可編輯的,而用戶可以輸入其他單元格的值。所以我認爲類似的東西也應該在這裏工作。 – Shouvik 2013-05-13 09:15:10
雖然有這種「保護」,但確實可以修改Excel文件。任何你發給用戶的數據然後返回(添加了一些數據)應該在你進一步處理之前進行驗證(用戶是具有不同技能組合的非常不同的類型)。 – Yahia 2013-05-13 09:21:24