Office Scripts: protección de libros y hojas de trabajo

Índice
  1. Usando esta publicación
  2. método getProtection
  3. Protección de la hoja de trabajo
    1. Comprobar si una hoja de trabajo está protegida
    2. ¿Qué opciones de protección se han aplicado?
    3. Proteger una hoja de trabajo
    4. Desproteger una hoja de trabajo
  4. Configuración de bloqueo de celda
    1. Devolver la configuración de bloqueo
    2. Cambiar la configuración de bloqueo
  5. Ocultar fórmulas
    1. Devolver la configuración oculta de la fórmula
    2. Cambiar la configuración oculta de la fórmula
  6. Protección del libro de trabajo
    1. Comprobar si un libro está protegido
    2. Proteger un libro de trabajo
    3. Desproteger un libro

Como usuarios de Excel, a menudo nos encontramos protegiendo y desprotegiendo hojas de trabajo y libros de trabajo. Si bien la protección de Excel no es perfecta, evita que otros, o incluso nosotros mismos, realicemos cambios accidentalmente. Puede ser tan simple como presionar una tecla que convierta la perfección de nuestra hoja de trabajo en un desastre lleno de errores.

Desafortunadamente, proteger y desproteger es una enorme pérdida de tiempo. Hay que proteger cada una de las hojas una a la vez, además tenemos que escribir correctamente la contraseña… dos veces. Si solo protegemos una sola hoja de trabajo, está bien. Pero si protegemos más que eso, debemos buscar una solución más rápida.

Lo que es aún peor para el usuario en línea de Excel es que la configuración de protección aún no está disponible en la cinta (esto es correcto al momento de escribir este artículo, pero con suerte cambiará pronto). Lo que significa que tenemos que alternar entre Excel de escritorio y Excel en línea. La buena noticia es que, dado que los scripts de Office están disponibles en Excel en línea, podemos aplicar protección a muchas hojas con solo unos pocos clics.

Si ha escrito macros VBA antes, mucho de lo que sabe se aplicará directamente a los scripts de Office, pero con una sintaxis ligeramente diferente. La buena noticia es que esta publicación puede ayudarle a realizar la transición a Office Scripts aún más rápido.

No es esencial leer la publicación completa de principio a fin, pero hacerlo le ayudará a comprender más sobre Office Scripts.


Usando esta publicación

Esta publicación pretende ser una guía de referencia que le ayudará a crear sus propios scripts de Office. Al usar y adaptar el código, debería poder lograr la mayor parte de lo que necesita para proteger y desproteger sin necesidad de buscar en otra parte.

La mayoría de los ejemplos se han estructurado de forma estándar. Esta coherencia debería ayudar a adaptar el código a sus propias necesidades. Los ejemplos de hojas de trabajo se aplican a una hoja de trabajo llamada "Hoja1" o a todos los elementos de la colección de hojas de trabajo. Hay muchas formas de hacer referencia a las hojas de trabajo, así que consulte mi guía de Office Scripts para hojas de trabajo para obtener más información sobre cómo adaptar esta parte del código.

Algunos de los ejemplos no proporcionan resultados visuales. En estas circunstancias, el registro de la consola se utiliza para generar el resultado. Es poco probable que utilices este enfoque en el mundo real, pero es útil para demostrar los conceptos.


método getProtection

Antes de entrar en los ejemplos, primero debemos observar dónde existen las configuraciones de protección de hojas de trabajo, rangos y libros dentro del modelo de objetos de Excel.

Notará que cada ejemplo que protege o desprotege la hoja de trabajo, rango o libro de trabajo utiliza getProtection como método intermediario. Para las hojas de trabajo, getProtection siempre se usa entre el objeto de la hoja de trabajo y el método de protección o desprotección (consulte el texto en negrita a continuación).

let ws = workbook.getWorksheet("Hoja1"); ws. getProtection() .protect();
letwsArr=workbook.getWorksheets();for (let i = 0; i wsArr.length ; i++) { wsArr[i]. getProtection() .protect();}

Acerca de getProtection(Worksheet)
Propósito: Devuelve el objeto de protección de hoja para una hoja de trabajo.
Sintaxis:ExcelScript.Worksheet.getProtection();
Parámetros: Ninguno
Devuelve:ExcelScript.WorksheetProtection

Lo mismo ocurre con el libro de trabajo, donde se usa getProtection entre el objeto del libro de trabajo y la acción de proteger o desproteger (consulte el texto en negrita a continuación).

libro de trabajo. getProtection() .protect();

Acerca de getProtection(Workbook)
Propósito: Devuelve el objeto de protección de un libro de trabajo.
Sintaxis:ExcelScript.Workbook.getProtection();
Parámetros: Ninguno
Devuelve:ExcelScript.WorkbookProtection

Finalmente, lo mismo puede decirse al bloquear celdas y ocultar fórmulas. getProtection se utiliza entre el formato de celda y la acción (consulte el texto en negrita a continuación).

ws.getRange("A1").getFormat(). getProtection() .setLocked(falso);

Acerca de getProtection (formatos de rango)
Propósito: Devuelve el objeto de protección de formato para un rango.
Sintaxis:ExcelScript.RangeFormat.getProtection();
Parámetros: Ninguno
Devuelve: ExcelScript.FormatProtection

Si bien en realidad no usamos getProtection por sí solo, es una parte clave del modelo de objetos que debemos incluir.


Protección de la hoja de trabajo

En esta sección, cubrimos algunas acciones clave:

  • Comprobar si una hoja de trabajo está protegida
  • Comprobar qué opciones de protección de la hoja de trabajo se han aplicado
  • Proteger una hoja de trabajo, con y sin contraseñas, y aplicarla a varias hojas de trabajo a la vez
  • Desproteger una hoja de trabajo, con y sin contraseñas, y aplicar a varias hojas de trabajo a la vez

Comprobar si una hoja de trabajo está protegida

Para confirmar si una hoja de trabajo ya está protegida, utilizamos el método getProtected. Devuelve verdadero si está protegido o falso si no lo está.

El código de ejemplo siguiente utiliza una declaración if para comprobar si getProtected devuelve verdadero. Si es así, el texto "La hoja de trabajo está protegida" aparece en el registro de la consola; de lo contrario, se mostrará el mensaje "Hoja de trabajo no protegida".

//Asigne la hoja de trabajo Hoja1 a la variable wslet ws = workbook.getWorksheet("Sheet1"); //Comprueba si la hoja de trabajo está protegidaif(ws.getProtection().getProtected()==true){ //Acción si está protegida console.log("Worksheetisprotected"); } else{ //Acción si no está protegido console.log("Worksheetnotprotected"); };

Esta es una verificación importante porque si una hoja de trabajo ya está protegida, intentar protegerla nuevamente generará un error. Ejecutar esta verificación ayuda a evitar este error.

Acerca de getProtected(Hoja de trabajo)
Propósito: Especifica si la hoja de trabajo está protegida.
Sintaxis:ExcelScript.WorksheetProtection.getProtected();
Parámetros: Ninguno
Devuelve: booleano (verdadero/falso)

¿Qué opciones de protección se han aplicado?

Habiendo establecido si una hoja de trabajo está protegida o no. Es posible que también necesitemos comprender qué opciones se han aplicado. Para el objeto de la hoja de trabajo, existen 14 opciones de protección. Estas opciones coinciden con las disponibles al proteger manualmente en el escritorio de Excel.

El siguiente código muestra el estado de cada opción de protección dentro del registro de la consola.

//Asigna la hoja de trabajo Sheet1 a la variable wsletws=workbook.getWorksheet("Sheet1");//Muestra el estado de cada opción de protección en la consola logconsole.log(ws.getProtection().getOptions().allowAutoFilter);console .log(ws.getProtection().getOptions().allowDeleteColumns);console.log(ws.getProtection().getOptions().allowDeleteRows);console.log(ws.getProtection().getOptions().allowEditObjects); console.log(ws.getProtection().getOptions().allowEditScenarios);console.log(ws.getProtection().getOptions().allowFormatCells);console.log(ws.getProtection().getOptions().allowFormatColumns) ;console.log(ws.getProtection().getOptions().allowFormatRows);console.log(ws.getProtection().getOptions().allowInsertColumns);console.log(ws.getProtection().getOptions().allowInsertHyperlinks );console.log(ws.getProtection().getOptions().allowInsertRows);console.log(ws.getProtection().getOptions().allowPivotTables);console.log(ws.getProtection().getOptions(). enableSort);console.log(ws.getProtection().getOptions().selectionMode);

No los analizaremos individualmente ya que aplican la misma configuración que la interfaz de escritorio estándar de Excel. Pero vale la pena señalar que todas las opciones tienen un valor verdadero o falso, excepto el modo de selección, que no tiene ningún valor, normal o desbloqueado.

Acerca de getOptions
Propósito: Devuelve las opciones de protección para la hoja de trabajo.
Sintaxis:ExcelScript.WorksheetProtection.getOptions();
Parámetros: Ninguno
Devuelve: ExcelScript.WorksheetProtectionOptions

Proteger una hoja de trabajo

Para proteger una hoja de trabajo, utilizamos el método de protección. Esto nos da la posibilidad de aplicar cualquiera de las opciones señaladas en la sección anterior, además de definir una contraseña.

Uno de los puntos clave a tener en cuenta sobre el método de protección es que no se puede aplicar a una hoja de trabajo ya protegida. Al hacerlo, se generará un error: Protección de WorksheetProtection: esta operación no está permitida para el objeto actual.

Por lo tanto, antes de proteger una sábana, debemos:

  • comprueba que está desprotegido
  • Aplicar el método de desprotección antes de proteger.

Acerca de proteger (hoja de trabajo)
Propósito: Protege una hoja de trabajo. Falla si la hoja de trabajo ya ha sido protegida.
Sintaxis:ExcelScript.WorksheetProtection.protect(¿opciones?, ¿contraseña?);
Parámetros:

  • opciones: ExcelScript.WorksheetProtectionOptions: configuración de protección de hoja opcional.
  • contraseña: cadena – parámetro opcional para establecer una contraseña

Devoluciones: nulas

Proteger una hoja de trabajo sin contraseña

El siguiente ejemplo demuestra cómo utilizar el método de protección sin ningún parámetro.

//Asignar la hoja de trabajo Hoja1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Proteger la hoja de trabajo sin contraseñaws.getProtection().protect();

Proteger una hoja de trabajo con una contraseña

El siguiente código se basa en el ejemplo anterior agregando una contraseña. El parámetro de contraseña es el segundo parámetro dentro del método; por lo tanto, hemos utilizado dos llaves ( { } ) en lugar del primer parámetro. El uso de las dos llaves evita la necesidad de aplicar las opciones de protección.

//Asigne la hoja de trabajo Hoja1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Proteja la hoja de trabajo con una contraseñaws.getProtection().protect({},"myPassword");

Proteger todas las hojas de trabajo: método n.° 1 para cada bucle

Aplicar protección una hoja a la vez puede llevar mucho tiempo. El siguiente código utiliza un bucle forEach para aplicar protección a cada elemento de la colección de hojas de trabajo.

//Asignar la colección de hojas de trabajo a la variable wsArr wsArr = workbook.getWorksheets();//Proteger todas las hojas de trabajo en el libro - Método #1wsArr.forEach(ws = { ws.getProtection().protect();});

Proteger todas las hojas de trabajo: método n.° 2 para bucle

Un método alternativo al bucle forEach es el bucle for, como se muestra en el siguiente ejemplo.

//Asignar la colección de hojas de trabajo a la variable wsArrletwsArr=workbook.getWorksheets();//Proteger todas las hojas de trabajo en el libro - Método #2for (let i = 0; i wsArr.length ; i++) { wsArr[i].getProtection() .proteger();};

Como el bucle for consta de tres partes, que están separadas por punto y coma, tenemos mucho control sobre el bucle.

  • i = 0: el primer parámetro es el inicializador.i se utiliza como variable numérica.
  • i wsArr.length: el bucle se ejecuta mientras esta condición siga siendo verdadera.
  • i++: el argumento final incrementa la ivariable en intervalos específicos. i++ agrega 1 a i para cada iteración.

Debido a que podemos controlar cada una de las tres partes, el bucle for nos brinda mucha flexibilidad, ya que no necesitamos recorrer todos los elementos de la colección.

Aplicar opciones de protección

Vimos las opciones de protección anteriores cuando miramos el método getOptions. Esas opciones se aplican utilizando el método de protección. Esto se demuestra en el siguiente código.

//Asigna la hoja de trabajo Sheet1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Establece opciones individuales al protegerws.getProtection().protect({ enableAutoFilter:false, enableDeleteRows:false, enableDeleteColumns:false, enableEditObjects: falso, permitirEditScenarios:falso, permitirFormatCells:falso, permitirFormatColumns:falso, permitirFormatRows:falso, permitirInsertColumns:falso, permitirInsertHyperlinks:falso, permitirInsertRows:falso, permitirPivotTables:falso, permitirSort:falso,selectionMode:ExcelScript.ProtectionSelectionMode.none});

La última opción en el código anterior, ExcelScript.ProtectionSelectionMode, puede tener tres valores posibles (ninguno, normal y desbloqueado). El código para las 3 opciones se muestra a continuación.

SelectionMode:ExcelScript.ProtectionSelectionMode.noneselectionMode:ExcelScript.ProtectionSelectionMode.normalselectionMode:ExcelScript.ProtectionSelectionMode.unlocked

  • none: No se pueden seleccionar celdas
  • normal: Se pueden seleccionar todas las celdas
  • desbloqueado: Sólo se pueden seleccionar celdas desbloqueadas

Desproteger una hoja de trabajo

Para desproteger una hoja de trabajo, utilizamos el método de desprotección. Si se utilizó una contraseña para proteger la hoja, también se requiere una contraseña para desprotegerla.

Si se utiliza una contraseña incorrecta, se producirá un error que indica: Desprotección de WorksheetProtection: el argumento no es válido, falta o tiene un formato incorrecto.

Acerca de desproteger(Hoja de trabajo)
Propósito: Desprotege una hoja de trabajo.
Sintaxis:ExcelScript.WorksheetProtection.unprotect(¿contraseña?);
Parámetros: contraseña: cadena – parámetro opcional para la contraseña de protección de la hoja
Devuelve: nulo

Desproteger una hoja de trabajo sin contraseña

El siguiente ejemplo demuestra cómo utilizar el método de desprotección sin contraseña.

//Asignar la hoja de trabajo Hoja1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Desproteger la hoja de trabajo sin contraseñaws.getProtection().unprotect();

Desproteger una hoja de trabajo con contraseña

El siguiente código se basa en el ejemplo anterior agregando una contraseña para desproteger la hoja de trabajo.

//Asigne la hoja de trabajo Hoja1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Desproteja la hoja de trabajo con contraseñaws.getProtection().unprotect("myPassword");

Detectar errores cuando se ingresa una contraseña incorrecta

Como se indicó anteriormente, proporcionar una contraseña incorrecta genera un error en el registro de la consola. Es mucho mejor detectar el error para gestionar el recorrido del usuario.

En el siguiente ejemplo, se ha utilizado una contraseña incorrecta. Se detecta el error y luego se muestra un mensaje en el registro de la consola.

//Asigna la hoja de trabajo Hoja1 a la variable wsletws=workbook.getWorksheet("Sheet1");//Intenta desproteger la hoja de trabajo con una contraseñatry { ws.getProtection().unprotect("wrongPassword") //Detecta el error de una contraseña incorrecta contraseña } catch (err) { //Mostrar un mensaje en el registro de la consola console.log ("Contraseña incorrecta"); };

Desproteger todas las hojas de trabajo: método n.° 1 para cada bucle

El siguiente código utiliza un bucle forEach para desproteger todos los elementos de la colección de hojas de trabajo.

//Asignar la colección de hojas de trabajo a la variable wsArr wsArr = workbook.getWorksheets();//Desproteger todas las hojas de trabajo en el libro - Método #1wsArr.forEach(ws = { ws.getProtection().unprotect();});

Desproteger todas las hojas de trabajo: método n.° 2 para bucle

Otra opción para desproteger todas las hojas de trabajo es utilizar el bucle for, como se muestra a continuación.

//Asignar la colección de hojas de trabajo a la variable wsArrlet wsArr=workbook.getWorksheets();//Desproteger todas las hojas de trabajo en el libro - Método #2for (let i = 0; i wsArr.length ; i++) { wsArr[i].getProtection( ).desproteger(); };

Configuración de bloqueo de celda

Cuando una hoja está protegida con ProtectionSelectionMode establecido en normal o desbloqueado, algunas celdas aún se pueden editar. Para obtener la configuración actual para un rango específico, usamos el método getLocked y para cambiar la configuración, usamos el método setLocked.

Devolver la configuración de bloqueo

El método getLocked proporciona un resultado verdadero o falso para indicar si un rango tiene aplicada la configuración de bloqueo. La configuración es parte del formato de un rango.

El siguiente código verifica la configuración de bloqueo de la celda A1 y devuelve verdadero o falso en el registro de la consola en consecuencia.

//Asigne la hoja de trabajo Hoja1 a la variable wslet ws = workbook.getWorksheet("Sheet1");//Verifique una configuración de bloqueo de rangosconsole.log(ws.getRange("A1").getFormat().getProtection().getLocked( ));

Cuando la hoja de trabajo no está protegida, la configuración de bloqueo no tiene ningún impacto; sólo entra en vigor cuando se aplica la protección.

Acerca de getLocked
Propósito: Confirma si Excel bloquea las celdas del objeto. Un valor nulo indica que todo el rango no tiene una configuración de bloqueo uniforme.
Sintaxis:ExcelScript.FormatProtection.getLocked();
Parámetros: Ninguno
Devuelve: booleano (verdadero/falso)

Cambiar la configuración de bloqueo

Para cambiar la configuración de bloqueo, utilizamos el método setLocked.

El siguiente ejemplo utiliza setLocked para cambiar la celda A1 para que esté bloqueada.

//Asigna la hoja de trabajo Sheet1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Establece la configuración de bloqueo de un rangews.getRange("A1").getFormat().getProtection().setLocked(true) ;

Si queremos cambiar la configuración de bloqueo para una hoja de trabajo completa, podemos lograrlo no proporcionando ninguna dirección de rango en el método getRange. Por ejemplo, el siguiente código establece que toda la hoja de trabajo no esté bloqueada.

//Asigne la hoja de trabajo Hoja1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Establezca la configuración de bloqueo para todo el rango de la hoja de trabajows.getRange().getFormat().getProtection().setLocked(false);

Acerca de setLocked
Propósito: Especifica si Excel bloquea las celdas del objeto.
Sintaxis:ExcelScript.FormatProtection.setLocked(bloqueado);
Parámetros: bloqueado: booleano (verdadero/falso)
Devuelve: nulo


Ocultar fórmulas

Personalmente, no considero que ocultar el cálculo de un rango sea parte de su protección. Sin embargo, Excel sí lo hace; por lo tanto, he proporcionado esta sección para que esté completa.

Si un rango tiene el formato oculto, el cálculo de ese rango no se puede ver cuando se aplica protección a la hoja de trabajo. Para obtener la configuración actual, usamos el método getFormulaHidden y para cambiar la configuración, usamos el método setFormulaHidden.

Devolver la configuración oculta de la fórmula

El método getFormulaHidden proporciona un resultado verdadero o falso para indicar si un rango tiene aplicada la configuración oculta. La configuración es parte del formato de un rango.

El siguiente código verifica la configuración oculta de la celda A1 y devuelve verdadero o falso en el registro de la consola en consecuencia.

//Asigne la hoja de trabajo Hoja1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Verifique la configuración oculta de la fórmula para rangeconsole.log(ws.getRange("A1").getFormat().getProtection(). getFórmulaHidden());

Cuando la hoja de cálculo no está protegida, la configuración oculta de la fórmula no tiene ningún impacto; sólo entra en vigor cuando se aplica la protección de la hoja de trabajo.

Acerca de getFormulaHidden
Propósito: Confirma si Excel oculta la fórmula para las celdas del rango. Un valor nulo indica que todo el rango no tiene una configuración oculta de fórmula uniforme.
Sintaxis:ExcelScript.FormatProtection.getFormulaHidden();
Parámetros: Ninguno
Devuelve: booleano (verdadero/falso)

Cambiar la configuración oculta de la fórmula

Para cambiar la configuración oculta de la fórmula, utilizamos el método setFormulaHidden.

El siguiente ejemplo usa setFormulaHidden para cambiar la celda A1 para tener fórmulas ocultas.

//Asigna la hoja de trabajo Sheet1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Establece la configuración oculta de la fórmula de un rangews.getRange("A1").getFormat().getProtection().setFormulaHidden(true );

Si queremos cambiar la configuración oculta de una hoja de trabajo completa, podemos lograrlo no proporcionando ninguna dirección de rango en el método getRange. Por ejemplo, el siguiente código configura toda la hoja de trabajo para que tenga la configuración oculta.

//Asigne la hoja de trabajo Hoja1 a la variable ws ws = workbook.getWorksheet("Sheet1");//Establezca la configuración oculta de fórmula para toda la hoja de trabajows.getRange().getFormat().getProtection().setFormulaHidden(true);

Acerca de setFormulaHidden
Propósito: Especifica si Excel oculta la fórmula de las celdas del rango.
Sintaxis:ExcelScript.FormatProtection.setFormulaHidden(fórmulaHidden);
Parámetros: formulaHidden: booleano (verdadero/falso)
Devuelve: nulo


Protección del libro de trabajo

En esta sección, cubrimos algunas acciones clave:

  1. Comprobar si un libro está protegido
  2. Proteger un libro de trabajo: con y sin contraseñas
  3. Desproteger un libro de trabajo, con y sin contraseñas

En Excel en línea, el objeto de nivel superior es el libro. La variable del libro de trabajo se declara como parte de la función principal. Por lo tanto, en los ejemplos, no he vuelto a declarar una variable del libro de trabajo. Pero si el código se usa fuera de la función principal, es posible que sea necesario volver a declarar la variable del libro.

Comprobar si un libro está protegido

Usamos el método getProtected para confirmar si un libro ya tiene protección aplicada. Un resultado verdadero significa que está protegido; un resultado falso significa que no lo es. Se produce un error al intentar proteger un libro ya protegido.

El código de ejemplo siguiente utiliza una declaración if para comprobar si getProtected devuelve verdadero. Si es cierto, el texto "El libro está protegido" aparece en el registro de la consola; de lo contrario, se mostrará el mensaje "Libro no protegido".

//Checkifworkbookisprotectedif(workbook.getProtection().getProtected()==true){ //Actionifprotectedconsole.log("Workbookisprotected");}else{ //Actionifnotprotectedconsole.log("Workbooknotprotected");};

Acerca de getProtected(Libro de trabajo)
Propósito: Especifica si el libro de trabajo está protegido.
Sintaxis:ExcelScript.WorkbookProtection.getProtected();
Parámetros: Ninguno
Devuelve: booleano (verdadero/falso)

Proteger un libro de trabajo

Debido a la falta de opciones adicionales, proteger los libros de trabajo es similar, pero más fácil que las hojas de trabajo.

Al igual que con las hojas de trabajo, la protección no se puede aplicar a un libro que ya esté protegido. Al hacerlo, se generará un error: Protección de WorkbookProtection: esta operación no está permitida para el objeto actual.

Por lo tanto, antes de aplicar protección a un libro de trabajo, debemos:

  • compruebe que el libro de trabajo esté desprotegido
  • Aplicar el método de desprotección antes de proteger.

Acerca de proteger (libro de trabajo)
Propósito: Protege un libro de trabajo. Falla si el libro ya ha sido protegido.
Sintaxis:ExcelScript.WorkbookProtection.protect(¿contraseña?);
Parámetros: contraseña: cadena – parámetro opcional para establecer una contraseña
Devuelve: nulo

Proteger un libro sin contraseña

El siguiente ejemplo muestra cómo proteger un libro sin contraseña.

//Proteger el libro sin contraseñaworkbook.getProtection().protect();

Proteger un libro con una contraseña

El siguiente código se basa en lo anterior agregando una contraseña al método de protección.

//Proteger el libro con contraseñaworkbook.getProtection().protect("myPassword");

Desproteger un libro

Para desproteger un libro de trabajo, utilizamos el método de desprotección. Si se utilizó una contraseña para proteger, también se requerirá una contraseña para desproteger.

Si se utiliza una contraseña incorrecta, se devuelve un error en el registro de la consola: Desprotección de WorkbookProtection: el argumento no es válido, falta o tiene un formato incorrecto.

Acerca de desproteger(Libro de trabajo)
Propósito: Desprotege un libro de trabajo.
Sintaxis:ExcelScript.WorkbookProtection.unprotect(¿contraseña?);
Parámetros: contraseña: cadena – parámetro opcional para la contraseña de protección del libro
Devuelve: nulo

Desproteger un libro sin contraseña

El siguiente ejemplo utiliza el método de desprotección sin el parámetro de contraseña.

//Desproteger el libro sin contraseñaworkbook.getProtection().unprotect();

Desproteger un libro con una contraseña

El siguiente código demuestra cómo desproteger un libro con una contraseña.

//Desproteger el libro con contraseñaworkbook.getProtection().unprotect("myPassword");

Detectar errores cuando se ingresa una contraseña incorrecta

Como se indicó anteriormente, proporcionar una contraseña incorrecta genera un error. Por tanto, es preferible detectar el error y controlar lo que sucede a continuación.

En el siguiente ejemplo, se proporciona una contraseña incorrecta. Se detecta el error y se muestra el texto "Contraseña incorrecta" en console.log.

//Catcherrorfromusingincorrectworkbookpasswordtry { workbook.getProtection().unprotect("wrongPassword")} catch(err){ //Acción si la contraseña es incorrectaconsole.log ("Incorrectpassword");};

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...