保护和取消保护 Excel 文件

Microsoft Excel 是一种流行的软件,用于管理组织中的数据。这主要是由于其先进的数据处理和表示功能。在这个技术时代,文件是虚拟共享的,而不是打印副本。这些文件可能包含复杂和敏感的数据。因此,要维护此类文件的完整性,您可能需要保护它们不被修改。 Excel 的保护功能为此目的派上用场。在本文中,您将学习如何使用 C++ 以编程方式保护和取消保护 Excel 文件。

用于保护和取消保护 Excel 文件的 C++ API - 免费下载

Aspose.Cells for C++ 是一个原生 C++ 库,允许您操作 Excel 文件,而无需安装 Microsoft Excel。因此,它用于自动化许多 Excel 工作流程。该 API 提供了许多有用的功能,包括保护和取消保护 Excel 文件。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。

PM> Install-Package Aspose.Cells.Cpp

使用 C++ 保护 Excel 文件

Aspose.Cells for C++ 提供以下保护类型来保护 Excel 文件。

  • 全部:保护整个数据,使用户无法修改任何内容。
  • 内容:保护工作表的内容。
  • 对象:保护工作表中的对象,使用户无法修改绘图对象。
  • 场景:保护工作表中的场景。
  • 结构:保护工作簿的结构。
  • Windows:保护保存的窗口不被修改。
  • 无:未应用保护。

以下是使用 C++ 保护 Excel 文件的步骤。

以下代码示例展示了如何使用 C++ 保护 Excel 文件。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));

// 通过指定保护类型来保护工作簿
workbook->Protect(ProtectionType::ProtectionType_All, new String("12345"));

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protected_out.xlsx")));

使用 C++ 取消保护 Excel 工作簿

以下是取消保护 Excel 文件的步骤。

以下代码示例显示了如何取消保护 Excel 文件。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtected.xlsx")));

// 取消保护工作簿
workbook->Unprotect(new String("12345"));

// 将密码设置为空
workbook->GetISettings()->SetPassword(NULL);

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotected_out.xlsx")));

使用 C++ 保护 Excel 工作表

除了保护 Excel 文件,您还可以保护单个工作表。请使用以下步骤来保护 Excel 工作表。

以下代码示例显示了如何保护 Excel 工作表。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));

// 访问 Excel 文件中的第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// 访问工作表的保护
intrusive_ptr<IProtection> protection = worksheet->GetIProtection();

// 以下 3 种方法仅适用于 Excel 2000 及更早的格式
protection->SetAllowEditingContent(false);
protection->SetAllowEditingObject(false);
protection->SetAllowEditingScenario(false);

// 使用密码“12345”保护第一个工作表
protection->SetPassword(new String("12345"));

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protectedWorksheet_out.xlsx")));

使用 C++ 取消保护 Excel 工作表

以下是取消保护 Excel 工作表的步骤。

以下代码示例显示如何使用 C++ 取消保护 Excel 工作表。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtectedWorksheet.xlsx")));

// 访问 Excel 文件中的第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// 取消保护工作表
worksheet->Unprotect(new String("12345"));

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotectedWorksheet_out.xlsx")));

获得免费许可证

您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何使用 C++ 保护和取消保护 Excel 文件。除此之外,您还学习了如何防止工作表被修改。 Aspose.Cells for C++ 是一个庞大的 Excel 操作 API,用于自动执行任务,例如替换单元格中的文本或处理以图形和图表表示的复杂数据。您可以使用 官方文档 详细探索 API。

也可以看看