Ya no tienes que indagar más en otras webs ya que llegaste al espacio necesario, tenemos la respuesta que necesitas y sin complicarte.
Solución:
Estoy agregando dos hojas de trabajo y necesito proteger todas las columnas excepto la del tercer índice.
Esto funcionó para mí 🙂
worksheet2.Cells["A1"].LoadFromDataTable(dt_Data, true); //------load data from datatable
worksheet2.Protection.IsProtected = true; //--------Protect whole sheet
worksheet2.Column(3).Style.Locked = false; //-------Unlock 3rd column
EPPlus puede estar predeterminado a todo las celdas están bloqueadas, en cuyo caso debe configurar el Locked
attribute a false
Para el otro columnas, luego establezca IsProtected en true
.
Solo pensé en publicar la solución en caso de que ayude a alguien más. Tuve que configurar toda la hoja de trabajo como protegida, pero configuré el Locked
attribute a false por cada no-Id
campo.
//Content
int i = 2;
foreach (var zip in results)
//Set cell values
ws.Cells["A" + i.ToString()].Value = zip.ChannelCode;
ws.Cells["B" + i.ToString()].Value = zip.DrmTerrDesc;
ws.Cells["C" + i.ToString()].Value = zip.IndDistrnId;
ws.Cells["D" + i.ToString()].Value = zip.StateCode;
ws.Cells["E" + i.ToString()].Value = zip.ZipCode;
ws.Cells["F" + i.ToString()].Value = zip.EndDate.ToShortDateString();
ws.Cells["G" + i.ToString()].Value = zip.EffectiveDate.ToShortDateString();
ws.Cells["H" + i.ToString()].Value = zip.LastUpdateId;
ws.Cells["I" + i.ToString()].Value = zip.ErrorCodes;
ws.Cells["J" + i.ToString()].Value = zip.Status;
ws.Cells["K" + i.ToString()].Value = zip.Id;
//Unlock non-Id fields
ws.Cells["A" + i.ToString()].Style.Locked = false;
ws.Cells["B" + i.ToString()].Style.Locked = false;
ws.Cells["C" + i.ToString()].Style.Locked = false;
ws.Cells["D" + i.ToString()].Style.Locked = false;
ws.Cells["E" + i.ToString()].Style.Locked = false;
ws.Cells["F" + i.ToString()].Style.Locked = false;
ws.Cells["G" + i.ToString()].Style.Locked = false;
ws.Cells["H" + i.ToString()].Style.Locked = false;
ws.Cells["I" + i.ToString()].Style.Locked = false;
ws.Cells["J" + i.ToString()].Style.Locked = false;
i++;
//Since we have to make the whole sheet protected and unlock each cell
//to allow for editing this loop is necessary
for (int a = 65000 - i; i < 65000; i++)
//Unlock non-Id fields
ws.Cells["A" + i.ToString()].Style.Locked = false;
ws.Cells["B" + i.ToString()].Style.Locked = false;
ws.Cells["C" + i.ToString()].Style.Locked = false;
ws.Cells["D" + i.ToString()].Style.Locked = false;
ws.Cells["E" + i.ToString()].Style.Locked = false;
ws.Cells["F" + i.ToString()].Style.Locked = false;
ws.Cells["G" + i.ToString()].Style.Locked = false;
ws.Cells["H" + i.ToString()].Style.Locked = false;
ws.Cells["I" + i.ToString()].Style.Locked = false;
ws.Cells["J" + i.ToString()].Style.Locked = false;
//Set worksheet protection attributes
ws.Protection.AllowInsertRows = true;
ws.Protection.AllowSort = true;
ws.Protection.AllowSelectUnlockedCells = true;
ws.Protection.AllowAutoFilter = true;
ws.Protection.AllowInsertRows = true;
ws.Protection.IsProtected = true;
Puedes añadir valor a nuestro contenido informacional tributando tu experiencia en las notas.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)