Cómo prevenir que los usuarios impriman archivos de Excel con Node.js mediante C++

Escenarios de uso posibles

En nuestro trabajo diario, puede haber información importante en el archivo de Excel; para proteger los datos internos de la difusión, la empresa no nos permitirá imprimirlos. Este documento le dirá cómo evitar que otros impriman archivos de Excel.

Cómo evitar que los usuarios impriman archivos en MS-Excel

Puede aplicar el siguiente código VBA para proteger su archivo específico de ser impreso.

  1. Abra su libro de trabajo que no permite que otros lo impriman.
  2. Seleccione la pestaña “Desarrollador” en la cinta de opciones de Excel y haga clic en el botón “Ver código” en la sección “Controles”. Alternativamente, puede mantener presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.


  3. Y luego, en el Explorador de proyectos en la izquierda, haga doble clic en ThisWorkbook para abrir el módulo, y agregue algunos códigos VBA.


  4. Luego, guarde y cierre este código, regrese al libro en blanco, y ahora cuando imprima el archivo de muestra, no se permitirá imprimir, y recibirá el siguiente cuadro de advertencia:


Cómo prevenir que los usuarios impriman archivos de Excel usando Aspose.Cells for Node.js via C++

El siguiente código de muestra ilustra cómo prevenir que los usuarios impriman un archivo de Excel:

  1. Cargar el archivo de muestra.
  2. Obtenga el objeto VbaModuleCollection desde la propiedad VbaProject del libro de trabajo.
  3. Obtenga el objeto VbaModule mediante el nombre “ThisWorkbook”.
  4. Establezca la propiedad de códigos de VbaModule.
  5. Guarde el archivo de muestra en formato xlsm.
const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "Sample.xlsx");

// Loads the workbook which contains hidden external links
const wb = new AsposeCells.Workbook(filePath);
const modules = wb.getVbaProject().getModules();
modules.get("ThisWorkbook").setCodes("Private Sub Workbook_BeforePrint(Cancel As Boolean)\r\n  Cancel = True\r\n  MsgBox \"Refusing to print in paperless office\"\r\nEnd Sub\r\n");

wb.save("out.xlsm");