Hur man förhindrar användare att skriva ut Excel fil med C++

Möjliga användningsscenario

I vårt dagliga arbete kan det finnas viktig information i Excel-filen; för att skydda den interna datan från att spridas tillåter inte företaget oss att skriva ut den. Det här dokumentet visar hur du förhindrar andra från att skriva ut Excel-filer.

Hur man förhindrar användare från att skriva ut fil i MS-Excel

Du kan tillämpa följande VBA-kod för att skydda din specifika fil från att skrivas ut.

  1. Öppna arbetsboken som du inte tillåter andra att skriva ut.
  2. Välj fliken “Utvecklare” i Excel-menyn och klicka på knappen “Visa kod” i avsnittet “Kontroller”. Alternativt kan du hålla ned tangenterna ALT + F11 för att öppna Microsoft Visual Basic för applikationer-fönstret.


  3. Dubbelklicka sedan på ThisWorkbook i vänstra Projektutforskaren för att öppna modulen och lägga till VBA-koder.


  4. Spara och stäng detta kodfönster, gå tillbaka till arbetsboken, och nu när du skriver ut exempelfilen tillåts det inte att skrivas ut, och du får följande varningsruta:


Hur man förhindrar användare att skriva ut Excel-fil med Aspose.Cells for C++

Följande exempel visar hur man förhindrar användare från att skriva ut en Excel-fil:

  1. Ladda in provfilen.
  2. Hämta VbaModuleCollection-objektet från VbaProject-egenskapen för Arbetsboken.
  3. Hämta VbaModule-objektet via “ThisWorkbook” namn.
  4. Ange egenskapen codes på VbaModule.
  5. Spara provfilen till xlsm-format.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Create workbook from existing Excel file
    Workbook workbook(u"Sample.xlsx");

    // Access VBA project modules
    VbaModuleCollection modules = workbook.GetVbaProject().GetModules();

    // Set VBA code for 'ThisWorkbook' module
    modules.Get(u"ThisWorkbook").SetCodes(u"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");

    // Save the workbook as macro-enabled Excel file
    workbook.Save(u"out.xlsm");

    std::cout << "VBA code added and workbook saved successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}