保護和取消保護 Excel 文件

Microsoft Excel 是一種流行的組織數據管理軟件。這主要是由於其先進的數據處理和表示功能。在這個技術時代,文件是虛擬共享的,而不是打印的副本。這些文件可能包含複雜和敏感的數據。因此,為了保持此類文件的完整性,您可能需要防止它們被修改。為此,Excel 的保護功能就派上用場了。在本文中,您將了解如何使用 C++ 以編程方式保護和取消保護 Excel 文件。

用於保護和取消保護 Excel 文件的 C++ API - 免費下載

Aspose.Cells for C++ 是一個原生的 C++ 庫,它允許您在不安裝 Microsoft Excel 的情況下操作 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。

也可以看看