Skydda och avskydda kalkylblad

Skydda kalkylblad

När ett kalkylblad är skyddat är användarens åtgärder begränsade. Till exempel kan de inte mata in data, infoga eller ta bort rader eller kolumner osv. De generella skyddsalternativen i Microsoft Excel är:

  • Innehåll
  • Objekt
  • Scenarier

Skyddade kalkylblad döljer inte eller skyddar känsliga data, så det skiljer sig från filkryptering. I allmänhet är kalkylbladsskydd lämpligt för presentationsändamål. Det förhindrar att slutanvändaren ändrar data, innehåll och formatering i kalkylbladet.

Lägga till eller ta bort skydd

Aspose.Cells tillhandahåller en klass, Workbook, som representerar en Microsoft Excel-fil. Workbook-klassen innehåller en WorksheetCollection som möjliggör åtkomst till varje kalkylblad i en Excel-fil. Ett kalkylblad representeras av klassen Worksheet.

Arbetsboken-klassen tillhandahåller metoden Protect som används för att tillämpa skydd på ett kalkylblad. Metoden Protect accepterar följande parametrar:

  • Skyddstyp, typen av skydd som ska tillämpas på kalkylbladet. Skyddstypen tillämpas med hjälp av ProtectionType-uppräkningen.
  • Nya lösenordet, det nya lösenordet som används för att skydda kalkylbladet.
  • Gammalt lösenord, det gamla lösenordet, om kalkylbladet redan är lösenordsskyddat. Om kalkylbladet inte redan är skyddat med lösenord, skicka bara en null.

SkyddsType-uppräkningen innehåller följande fördefinierade skyddstyper:

Skydds typer Beskrivning
ALL Användaren kan inte ändra någonting på den här arbetsbladet
CONTENTS Användaren kan inte mata in data på detta arbetsblad
OBJECTS Användaren kan inte ändra ritobjekt
SCENARIOS Användaren kan inte ändra sparade scenarier
STRUCTURE Användaren kan inte ändra sparad struktur
WINDOWS Användaren kan inte ändra sparade fönster
NONE Inget skydd

Nedan följer ett exempel på hur man skyddar ett arbetsblad med lösenord.

Efter ovanstående kod används för att skydda arbetsbladet, kontrollera skyddet på arbetsbladet genom att öppna den. När du öppnar filen och försöker lägga till lite data på arbetsbladet, visas följande dialogruta:

En dialogruta som varnar för att användaren inte kan ändra arbetsbladet

todo:image_alt_text

För att arbeta med arbetsbladet, avskydda arbetsbladet genom att välja Skydd, sedan Avskydda blad från Verktyg menyobjekt som visas nedan.

Val av Unprotect Sheet-menyalternativ

todo:image_alt_text

En dialogruta öppnas som ber om ett lösenord.

Ange lösenord för att avskydda arbetsbladet

todo:image_alt_text

Skydda några celler

Det kan finnas vissa scenarier där du behöver låsa några celler endast i arbetsbladet. Om du vill låsa vissa specifika celler i arbetsbladet måste du låsa upp alla andra celler i arbetsbladet. Alla celler i ett arbetsblad är redan initialiserade för låsning, du kan kontrollera detta genom att öppna vilken Excel-fil som helst i MS Excel och klicka på Format | Cells… för att visa dialogrutan Formatera celler och sedan klicka på fliken Skydd och se en kryssruta med etiketten “Låst” är markerad som standard.

Följande är de två tillvägagångssätten för att genomföra uppgiften.

Metod1:

Följande punkter beskriver hur man låser några celler med hjälp av MS Excel. Denna metod gäller för Microsoft Office Excel 97, 2000, 2002, 2003 och senare versioner.

  1. Markera hela arbetsbladet genom att klicka på Välj allt-knappen (den grå rektangeln direkt ovanför radnumret för rad 1 och till vänster om kolumnbrev A).

  2. Klicka på Cellerna på menyn Format, klicka på fliken Skydd och avmarkera sedan rutan för Låst.

    Det låser upp alla cellerna på arbetsbladet

  1. Markera bara de celler du vill låsa och upprepa steg 2, men välj den här gången rutan bredvid Låst.
  2. Verktyg-menyn väljer du Skydd, klickar på Skydda blad och klickar sedan på OK.

Metod2:

I denna metod använder vi endast Aspose.Cells API för att utföra uppgiften.

Följande exempel visar hur du låser några celler i arbetsbladet. Det låser upp alla celler i arbetsbladet först och sedan låser 3 celler (A1, B1, C1) i det. Till slut skyddas arbetsbladet. En rad/kolumn har en Style API som ytterligare innehåller en metod satt låst. Du kan använda den här metoden för att låsa upp eller låsa en rad/kolumn.

Skydda en rad i kalkylarket

Aspose.Cells låter dig enkelt låsa vilken rad som helst i kalkylarket. Här kan vi använda metoden applyStyle() av klassen Row för att tillämpa stil på en särskild rad i kalkylarket. Denna metod tar två argument: ett Style objekt och StyleFlag struct som har alla medlemmar relaterade till tillämpad formatering.

Följande exempel visar hur man skyddar en rad i kalkylarket. Det låser upp alla celler i kalkylarket först och låser sedan den första raden i det. Slutligen skyddar det kalkylarket. En rad/kolumn har en Style API som ytterligare innehåller en setCellLocked-metod . Du kan låsa eller låsa upp rad/kolumn med hjälp av StyleFlag struct.

Skydda en kolumn i kalkylarket

Aspose.Cells låter dig enkelt låsa vilken kolumn som helst i kalkylarket. Här kan vi använda metoden applyStyle() av klassen Column för att tillämpa stil på en särskild kolumn i kalkylarket. Denna metod tar två argument: ett Style objekt och StyleFlag struct som har alla medlemmar relaterade till tillämpad formatering.

Följande exempel visar hur man skyddar en kolumn i kalkylarket. Det låser upp alla celler i kalkylarket först och låser sedan den första kolumnen i det. Slutligen skyddar det kalkylarket. En rad/kolumn har en Style API som ytterligare innehåller en setLocked-metod . Du kan låsa eller låsa upp rad/kolumn med hjälp av StyleFlag struct.

Avskydda ett kalkylblad

Skydda arbetsblad och Avancerade skyddsinställningar sedan Excel XP diskuterade olika metoder för att skydda arbetsblad. Vad händer om en utvecklare behöver ta bort skydd från ett skyddat arbetsblad under körning så att vissa ändringar kan göras i filen? Detta kan enkelt göras med Aspose.Cells.

Använda Microsoft Excel

För att ta bort skydd från ett arbetsblad:

Från Verktyg-menyn väljer du Skydd följt av Avskydda blad.

Välja Avskydda blad

todo:image_alt_text

Skyddet tas bort, om inte arbetsbladet är lösenordsskyddat. I så fall uppmanar en dialogruta efter lösenordet.

Ange lösenord för att avskydda arbetsbladet

todo:image_alt_text

Använda Aspose.Cells

Ett arbetsblad kan avskyddas genom att anropa Worksheet klassens Unprotect metod. Metoden Unprotect kan användas på två sätt, beskrivna nedan.

Avskydda ett enkelt skyddat arbetsblad

Ett enkelt skyddat arbetsblad är ett som inte är skyddat med ett lösenord. Sådana arbetsblad kan avskyddas genom att anropa avskydda metoden utan att skicka en parameter.

Avskydda ett lösenordsskyddat arbetsblad

Ett lösenordsskyddat arbetsblad är ett som är skyddat med ett lösenord. Sådana arbetsblad kan avskyddas genom att anropa en överbelastad version av avskydda metoden som tar lösenordet som en parameter.

Avancerade skyddsinställningar sedan Excel XP

Skydda arbetsblad diskuterade skydd av ett arbetsblad i Microsoft Excel 97 och 2000. Men sedan lanseringen av Excel 2002 eller XP har Microsoft lagt till många avancerade skyddsinställningar. Dessa skyddsinställningar begränsar eller tillåter användare att:

  • Ta bort rader eller kolumner.
  • Redigera innehåll, objekt eller scenarier.
  • Formatera celler, rader eller kolumner.
  • Infoga rader, kolumner eller hyperlänkar.
  • Välj låsta eller olåsta celler.
  • Använd pivottabeller och mycket annat.

Aspose.Cells stöder alla avancerade skyddsinställningar som erbjuds av Excel XP och senare versioner.

Avancerade skyddsinställningar med Excel XP och senare versioner

För att visa de tillgängliga skyddsinställningarna i Excel XP:

  1. Från Verktyg-menyn väljer du Skydd följt av Skydda blad. En dialogruta visas.

    Dialog för att visa skyddsalternativ i Excel XP

todo:image_alt_text

  1. Tillåt eller begränsa arbetsbladsfunktioner eller tillämpa ett lösenord.

Avancerade skyddsinställningar med hjälp av Aspose.Cells

Aspose.Cells stödjer alla avancerade skyddsinställningar.

Aspose.Cells tillhandahåller en klass, Workbook, som representerar en Microsoft Excel-fil. Workbook-klassen innehåller en WorksheetCollection-samling som tillåter åtkomst till varje arbetsblad i Excel-filen. Ett arbetsblad representeras av klassen Worksheet.

Worksheet-klassen tillhandahåller egenskapen Protection som används för att tillämpa dessa avancerade skyddsinställningar. Egenskapen Protection är faktiskt en instans av klassen Protection som kapslar in flera booleska egenskaper för att inaktivera eller aktivera restriktioner.

Nedan finns en liten exempelapplikation. Den öppnar en Excel-fil och använder de flesta av de avancerade skyddsinställningarna som stöds av Excel XP och senare versioner.

Cellåsningsproblem

Om du vill begränsa användare från att redigera celler måste cellerna låsas innan några skyddsinställningar tillämpas. Annars kan cellerna redigeras även om arbetsbladet är skyddat. I Microsoft Excel XP kan celler låsas med följande dialog:

Dialog för att låsa celler i Excel XP

todo:image_alt_text

Det är möjligt att låsa celler med hjälp av Aspose.Cells API också. Varje cell har en Style API som ytterligare innehåller en setLocked-metod. Använd den för att låsa eller låsa upp celler.