![Skydda och avskydda Excel-filer](images/Protect-Excel-Files-C.jpg#center)
Microsoft Excel är en populär programvara för att hantera data i organisationer. Det beror främst på dess avancerade datamanipulerings- och representationsfunktioner. I denna teknologiska tidsålder delas dokument virtuellt istället för tryckta kopior. Dessa filer kan innehålla komplexa och känsliga data. Så för att bibehålla sådana filers integritet kan du behöva skydda dem mot modifiering. Excels skyddsfunktioner är användbara för detta ändamål. I den här artikeln kommer du att lära dig hur du skyddar och avskyddar Excel-filer programmatiskt med C++.
- C++ API för att skydda och avskydda Excel-filer
- Skydda Excel-filer med C++
- Ta bort skyddet för Excel-arbetsboken med C++
- Skydda Excel-kalkylblad med C++
- Ta bort skyddet av Excel-kalkylblad med C++
- Skaffa en gratis licens
C++ API för att skydda och avskydda Excel-filer - Gratis nedladdning
Aspose.Cells for C++ är ett inbyggt C++-bibliotek som låter dig manipulera Excel-filer utan att behöva installera Microsoft Excel. Därför används den för att automatisera många Excel-arbetsflöden. API:et tillhandahåller ett gäng användbara funktioner, inklusive att skydda och avskydda Excel-filer. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.
PM> Install-Package Aspose.Cells.Cpp
Skydda Excel-filer med C++
Aspose.Cells för C++ tillhandahåller följande skyddstyper för att skydda Excel-filer.
- Alla: Skydda hela data så att användaren inte kan ändra någonting.
- Innehåll: Skydda innehållet i arbetsbladet.
- Objekt: Skydda objekten i kalkylbladet så att användaren inte kan ändra ritobjekt.
- Scenarier: Skydda scenarierna i kalkylbladet.
- Struktur: Skydda strukturen i arbetsboken.
- Windows: Skydda de sparade fönstren från modifiering.
- Inget: Inget skydd tillämpas.
Följande är stegen för att skydda Excel-filer med C++.
- Ladda Excel-filen med klassen IWorkbook.
- Skydda filen med IWorkbook->Protect(Aspose::Cells::ProtectionType protectionType, intrusiveptrAspose::Cells::Systems::String lösenord) metod.
- Spara den skyddade Excel-filen med IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande kodexempel visar hur du skyddar Excel-filer med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda Excel-fil
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));
// Skydda arbetsboken genom att ange skyddstyp
workbook->Protect(ProtectionType::ProtectionType_All, new String("12345"));
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protected_out.xlsx")));
Ta bort skyddet för Excel-arbetsboken med C++
Följande är stegen för att ta bort skyddet av en Excel-fil.
- Ladda Excel-filen med klassen IWorkbook.
- Ta bort skyddet av filen med IWorkbook->Unprotect(intrusiveptrAspose::Cells::Systems::String lösenord) metod.
- Ställ in lösenordet till NULL med hjälp av IWorkbook->GetISettings()->SetPassword(intrusiveptrAspose::Cells::Systems::String värde) metod.
- Spara den oskyddade Excel-filen med IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande kodexempel visar hur du tar bort skyddet av Excel-filer.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda Excel-fil
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtected.xlsx")));
// Avskydda arbetsboken
workbook->Unprotect(new String("12345"));
// Ställ in lösenordet till null
workbook->GetISettings()->SetPassword(NULL);
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotected_out.xlsx")));
Skydda Excel-kalkylblad med C++
Förutom att skydda Excel-filer kan du också skydda enskilda kalkylblad. Använd följande steg för att skydda Excel-kalkylblad.
- Ladda först Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet som du vill skydda från kalkylbladssamlingen med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex( Aspose::Cells::Systems::Int32 index).
- Få kalkylbladets skydd med metoden IWorksheet->GetIProtection().
- Ställ in skyddsalternativ som SetAllowEditingContent (boolvärde).
- Ställ in lösenordet med hjälp av IProtection->SetPassword (intrusiveptrAspose::Cells::Systems::String värde) metod.
- Slutligen sparar du Excel-filen med det skyddade kalkylbladet med IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande kodexempel visar hur du skyddar Excel-kalkylblad.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda Excel-fil
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));
// Åtkomst till det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Få åtkomst till kalkylbladets skydd
intrusive_ptr<IProtection> protection = worksheet->GetIProtection();
// Följande 3 metoder är endast för Excel 2000 och tidigare format
protection->SetAllowEditingContent(false);
protection->SetAllowEditingObject(false);
protection->SetAllowEditingScenario(false);
// Skydda det första kalkylbladet med lösenordet "12345"
protection->SetPassword(new String("12345"));
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protectedWorksheet_out.xlsx")));
Ta bort skyddet av Excel-kalkylblad med C++
Följande är stegen för att ta bort skyddet av Excel-kalkylblad.
- Ladda Excel-filen med klassen IWorkbook.
- Gå till det skyddade kalkylbladet med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex( Aspose::Cells::Systems::Int32 index).
- Ta bort skyddet av kalkylbladet med IWorksheet->Unprotect(intrusiveptrAspose::Cells::Systems::String lösenord) metod.
- Slutligen sparar du Excel-filen med det oskyddade kalkylbladet med IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande kodexempel visar hur du tar bort skyddet av Excel-kalkylblad med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda Excel-fil
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtectedWorksheet.xlsx")));
// Åtkomst till det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Ta bort skyddet för arbetsbladet
worksheet->Unprotect(new String("12345"));
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotectedWorksheet_out.xlsx")));
Skaffa en gratis licens
Du kan prova API:et utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.
Slutsats
I den här artikeln har du lärt dig hur du skyddar och avskyddar Excel-filer med C++. Utöver det har du också lärt dig hur du skyddar arbetsblad mot ändringar. Aspose.Cells för C++ är ett stort Excel-manipulations-API för automatisering av uppgifter som att ersätta text i celler eller bearbeta komplexa data som representeras i grafer och diagram. Du kan utforska API:et i detalj genom att använda officiell dokumentation.