检查excel单元格是否被locking的方法是什么?

如何检查该范围内的特定单元格是否被locking,

我张贴我的代码的小片段,请build议,如果单元格未locking,写入单元格的更好方法。

if(reader.HasRows){minRow = 0; minCol = 0;

// Process each result in the result set while (reader.Read()) { // Create an array big enough to hold the column values object[] values = new object[reader.FieldCount]; // Add the array to the ArrayList rowList.Add(values); // Get the column values into the array reader.GetValues(values); int iValueIndex = 0; int jValueIndex = 1; // If the Reading Format is by ColumnByColumn if (CurTaskNode.ReadFormat == "ColumnbyColumn") { minCol = 0; int lengthHeader = 0; if (CurTaskNode.ReadHeader == true) { lengthHeader = CurTaskNode.HEADER_MAX_ROW - CurTaskNode.HEADER_MIN_ROW; } else { lengthHeader = CurTaskNode.HeaderData.Length; } for (int iCol = 0; iCol < lengthHeader; iCol++) { // Checking whether the Header data exists or not if (CurTaskNode.HeaderData[minCol] != "") { //if (!(excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol]).Locked) //{ // Assigning the Value from reader to the particular cell in excel sheet excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol] = values[iValueIndex]; iValueIndex++; //} } minCol++; } minRow++; } 

在代码中,写入excel单元格是

excelworksheet.Cells [CurTaskNode.DATA_MIN_ROW + minRow,CurTaskNode.DATA_MIN_COL + minCol] = values [iValueIndex];

在这里我要检查一下细胞是否被locking的情况,我试过了,但是这是不正确的。

CurTaskNode.DATA_MIN_ROW是excel表格中要写入的数据的最小值,这个值来自XML文件,如果我必须从(10,2)写入(20,10)单元格,其中如果第一个单元格是说locking,我不能写入该单元格,我不得不继续与其他单元格写作。

请帮助我这样做。 谢谢,Ramm

((Range)excelworksheet.Cells [CurTaskNode.DATA_MIN_ROW + minRow,CurTaskNode.DATA_MIN_COL + minCol])。Locked是查找单元格locking属性的属性。

excelworksheet.Protection.AllowBlahBlahBlah是获得/设置一种工作表的保护属性。

excelworksheet.ProtectionMode是一个只读布尔值来查明是否允许AllowBlahBlahBlah's定义的保护。

所以我可以使用

 Range r = (Range)excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol]?? new Range(); // cover null if( r.Locked && // is cell locked excelworksheet.ProtectionMode && // is sheet protected !excelworksheet.Protection.AllowFormattingCells) // are locked cells not allowed to be messed with DoSomethingBecauseItsProtected();