Proteger celdas específicas en una hoja de cálculo de Excel

En este tutorial, veremos el código fuente de C# que utiliza la biblioteca Aspose.Cells para proteger celdas específicas en una hoja de cálculo de Excel. Revisaremos cada paso del código y explicaremos cómo funciona. Siga las instrucciones cuidadosamente para obtener los resultados deseados.

Paso 1: requisitos previos

Antes de comenzar, asegúrese de haber instalado la biblioteca Aspose.Cells para .NET. Puede obtenerlo en el sitio web oficial de Aspose. También asegúrese de tener una versión reciente de Visual Studio o cualquier otro entorno de desarrollo de C#.

Paso 2: importar los espacios de nombres necesarios

Para utilizar la biblioteca Aspose.Cells, necesitamos importar los espacios de nombres necesarios a nuestro código. Agregue las siguientes líneas en la parte superior de su archivo fuente de C#:

using Aspose.Cells;

Paso 3: crear un libro de Excel

En este paso, crearemos un nuevo libro de Excel. Utilice el siguiente código para crear un libro de Excel:

// Ruta al directorio de documentos.
string dataDir = "YOUR_DIRECTORY_OF_DOCUMENTS";

// Cree un nuevo libro de trabajo.
Workbook wb = new Workbook();

Asegúrate de reemplazar"YOUR_DOCUMENTS_DIR" con la ruta adecuada a su directorio de documentos.

Paso 4: crear una hoja de cálculo

Ahora que hemos creado el libro de Excel, creemos una hoja de trabajo y obtengamos la primera hoja. Utilice el siguiente código:

// Crea un objeto de hoja de cálculo y obtén la primera hoja.
Worksheet sheet = wb.Worksheets[0];

Paso 5: Definir el estilo

En este paso, definiremos el estilo que se aplicará a celdas específicas. Utilice el siguiente código:

// Definición del objeto de estilo.
Styling styling;

Paso 6: bucle para desbloquear todas las columnas

Ahora recorreremos todas las columnas de la hoja de trabajo y las desbloquearemos. Utilice el siguiente código:

// Recorra todas las columnas de la hoja de trabajo y desbloquéelas.
for (int i = 0; i <= 255; i++)
{
     style = sheet.Cells.Columns[(byte)i].Style;
     style. IsLocked = false;
     sheet.Cells.Columns[(byte)i].ApplyStyle(style);
}

Paso 7: bloquear celdas específicas

En este paso, bloquearemos celdas específicas. Utilice el siguiente código:

//Bloqueando las tres celdas... es decir, A1, B1, C1.
style = sheet.Cells["A1"].GetStyle();
style. IsLocked = true;
sheet.Cells["A1"].SetStyle(style);

style = sheet.Cells["B1"].GetStyle();
style. IsLocked = true;
sheet.Cells["B1"].SetStyle(style);

style = sheet.Cells["C1"].GetStyle();
style. IsLocked = true;
sheet.Cells["C1"].SetStyle(style);

Paso 8: Proteger la hoja de trabajo

Finalmente, protegeremos la hoja de trabajo para evitar que se modifiquen celdas específicas. Utilice el siguiente código:

// Proteja la hoja de trabajo.
sheet.Protect(ProtectionType.All);

Paso 9: guardar el archivo de Excel

Ahora guardaremos el archivo Excel modificado. Utilice el siguiente código:

// Guarde el archivo de Excel.
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);

Asegúrese de especificar la ruta correcta para guardar el archivo de Excel modificado.

Código fuente de muestra para proteger celdas específicas en una hoja de cálculo de Excel usando Aspose.Cells para .NET

//La ruta al directorio de documentos.
string dataDir = "YOUR DOCUMENT DIRECTORY";
// Cree un directorio si aún no está presente.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
    System.IO.Directory.CreateDirectory(dataDir);
// Cree un nuevo libro de trabajo.
Workbook wb = new Workbook();
// Cree un objeto de hoja de trabajo y obtenga la primera hoja.
Worksheet sheet = wb.Worksheets[0];
// Defina el objeto de estilo.
Style style;
// Definir el objeto styleflag
StyleFlag styleflag;
// Recorra todas las columnas de la hoja de trabajo y desbloquéelas.
for (int i = 0; i <= 255; i++)
{
    style = sheet.Cells.Columns[(byte)i].Style;
    style.IsLocked = false;
    styleflag = new StyleFlag();
    styleflag.Locked = true;
    sheet.Cells.Columns[(byte)i].ApplyStyle(style, styleflag);
}
// Bloquee las tres celdas... es decir, A1, B1, C1.
style = sheet.Cells["A1"].GetStyle();
style.IsLocked = true;
sheet.Cells["A1"].SetStyle(style);
style = sheet.Cells["B1"].GetStyle();
style.IsLocked = true;
sheet.Cells["B1"].SetStyle(style);
style = sheet.Cells["C1"].GetStyle();
style.IsLocked = true;
sheet.Cells["C1"].SetStyle(style);
// Finalmente, protege la sábana ahora.
sheet.Protect(ProtectionType.All);
// Guarde el archivo de Excel.
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);

Conclusión

¡Enhorabuena! Ahora tiene el código fuente de C# que le permite proteger celdas específicas en una hoja de cálculo de Excel utilizando la biblioteca Aspose.Cells para .NET. No dude en personalizar el código para adaptarlo a sus necesidades específicas.

Preguntas frecuentes (Preguntas frecuentes)

¿Este código funciona con versiones recientes de Excel?

Sí, este código funciona con versiones recientes de Excel, incluidos archivos en formato Excel 2010 y superior.

¿Puedo proteger otras células además de A1, B1 y C1?

Sí, puedes modificar el código para bloquear otras celdas específicas ajustando las referencias de celda en las líneas de código correspondientes.

¿Cómo puedo desbloquear celdas bloqueadas nuevamente?

Puedes usarSetStyle método conIsLocked ajustado afalse para desbloquear celdas.

¿Puedo agregar más hojas de trabajo al libro de trabajo?

Sí, puede agregar otras hojas de trabajo al libro de trabajo usando elWorksheets.Add()método y repita los pasos de protección celular para cada hoja de trabajo.

¿Cómo puedo cambiar el formato de guardado del archivo de Excel?

Puede cambiar el formato de guardado usando elSaveFormat método con el formato deseado, por ejemploSaveFormat.Xlsx para Excel 2007 y posteriores.