如何用C++阻止用户打印Excel文件
Contents
[
Hide
]
可能的使用场景
在日常工作中,Excel文件中可能包含一些重要信息;为了防止内部数据传播,公司不会允许我们打印。这份文件将告诉你如何阻止他人打印Excel文件。
如何防止用户在MS-Excel中打印文件
您可以应用以下VBA代码以保护您的特定文件不被打印。
- 打开您不允许他人打印的工作簿。
- 在Excel功能区选择“开发者”标签,然后点击“控件”中的“查看代码”按钮。或者,您可以按下ALT + F11键打开Microsoft Visual Basic for Applications窗口。
- 然后在左侧的项目资源管理器中,双击ThisWorkbook以打开模块,并添加一些VBA代码。
- 保存并关闭代码,返回到工作簿,现在当您打印示例文件时,将不允许打印,并会显示以下警告框:
如何使用Aspose.Cells for C++阻止用户打印Excel文件
以下示例代码说明如何防止用户打印Excel文件:
- 加载示例文件。
- 从工作簿的VbaProject属性获取VbaModuleCollection对象。
- 通过“ThisWorkbook”名称获取VbaModule对象。
- 设置VbaModule的代码属性。
- 将示例文件保存为xlsm格式。
#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();
}