Microsoft Excel 是一種流行的組織數據管理軟件。這主要是由於其先進的數據處理和表示功能。在這個技術時代,文件是虛擬共享的,而不是打印的副本。這些文件可能包含複雜和敏感的數據。因此,為了保持此類文件的完整性,您可能需要防止它們被修改。為此,Excel 的保護功能就派上用場了。在本文中,您將了解如何使用 C++ 以編程方式保護和取消保護 Excel 文件。
- 用於保護和取消保護 Excel 文件的 C++ API
- 使用 C++ 保護 Excel 文件
- 使用 C++ 取消保護 Excel 工作簿
- 使用 C++ 保護 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 文件的步驟。
- 使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->Protect(Aspose::Cells::ProtectionType protectionType, intrusiveptrAspose::Cells::Systems::String密碼) 方法。
- 使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下代碼示例顯示如何使用 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 文件的步驟。
- 使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->Unprotect(intrusiveptrAspose::Cells::Systems::String密碼) 方法。
- 使用 IWorkbook->GetISettings()->SetPassword(intrusiveptrAspose::Cells::Systems::String值) 方法。
- 使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下代碼示例顯示如何取消保護 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 工作表。
- 首先,使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex( Aspose::Cells::Systems::Int32 index) 方法從工作表集合中獲取要保護的工作表。
- 使用 IWorksheet->GetIProtection() 方法獲取工作表的保護。
- 設置保護選項,例如 SetAllowEditingContent (bool value)。
- 使用 IProtection->SetPassword (intrusiveptrAspose::Cells::Systems::String值) 方法。
- 最後,使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下代碼示例顯示瞭如何保護 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 工作表的步驟。
- 使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex( Aspose::Cells::Systems::Int32 index) 方法訪問受保護的工作表。
- 使用 IWorksheet->Unprotect(intrusiveptrAspose::Cells::Systems::String密碼) 方法。
- 最後,使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下代碼示例顯示如何使用 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。