Proteggere e Difendere il Foglio di Lavoro
Proteggere i fogli di lavoro
Quando un foglio di lavoro è protetto, le azioni che un utente può compiere sono limitate. Ad esempio, non possono inserire dati, inserire o eliminare righe o colonne, ecc. Le opzioni generali di protezione in Microsoft Excel sono:
- Contenuti
- Oggetti
- Scenari
I fogli di lavoro protetti non nascondono o proteggono dati sensibili, quindi è diverso dalla crittografia del file. In generale, la protezione del foglio di lavoro è adatta per scopi di presentazione. Impedisce all’utente finale di modificare i dati, il contenuto e la formattazione nel foglio di lavoro.
Aggiunta o Rimozione della Protezione
Aspose.Cells fornisce una classe, Workbook, che rappresenta un file Microsoft Excel. La classe Workbook contiene una WorksheetCollection che consente di accedere a ciascun foglio di lavoro in un file di Excel. Un foglio di lavoro è rappresentato dalla classe Worksheet.
La classe Worksheet fornisce il metodo Protect che viene utilizzato per applicare la protezione a un foglio di lavoro. Il metodo Protect accetta i seguenti parametri:
- Tipo di Protezione, il tipo di protezione da applicare al foglio di lavoro. Il tipo di protezione è applicato con l’aiuto dell’enumerazione ProtectionType.
- Nuova password, la nuova password utilizzata per proteggere il foglio di lavoro.
- Vecchia Password, la vecchia password, se il foglio di lavoro è già protetto da password. Se il foglio di lavoro non è già protetto, passare semplicemente un valore null.
L’enumerazione ProtectionType contiene i seguenti tipi di protezione predefiniti:
Tipi di protezione | Descrizione |
---|---|
ALL | L’utente non può modificare nulla in questo foglio di lavoro |
CONTENTS | L’utente non può inserire dati in questo foglio di lavoro |
OBJECTS | L’utente non può modificare gli oggetti disegnati |
SCENARIOS | L’utente non può modificare gli scenari salvati |
STRUCTURE | L’utente non può modificare la struttura salvata |
WINDOWS | L’utente non può modificare le finestre salvate |
NONE | Nessuna protezione |
L’esempio seguente mostra come proteggere un foglio di lavoro con una password.
Dopo aver utilizzato il codice precedente per proteggere il foglio di lavoro, controllare la protezione sul foglio di lavoro aprendolo. Una volta aperto il file e cercare di aggiungere dei dati al foglio di lavoro, verrà visualizzata la seguente finestra di dialogo:
Una finestra di dialogo che avverte che un utente non può modificare il foglio di lavoro
Per lavorare sul foglio di lavoro, rimuovere la protezione selezionando Protezione, quindi Rimuovi Protezione Foglio dal menu Strumenti come mostrato di seguito.
Selezione dell’opzione di menu Rimuovi Protezione Foglio
Si apre un dialogo che richiede una password.
Immettere la password per sbloccare il foglio di lavoro
Proteggere alcune celle
Potrebbero esserci certi scenari in cui è necessario bloccare solo alcune celle nel foglio di lavoro. Se si desidera bloccare alcune celle specifiche nel foglio di lavoro, è necessario sbloccare tutte le altre celle nel foglio di lavoro. Tutte le celle in un foglio di lavoro sono già inizializzate per il blocco, è possibile verificare ciò aprendo qualsiasi file excel in MS Excel e cliccando su Formato | Celle… per mostrare la finestra di dialogo Formato celle e quindi fare clic sulla scheda Protezione e vedere che la casella di controllo denominata “Bloccata” è già spuntata per impostazione predefinita.
Di seguito sono illustrate le due modalità per implementare il compito.
Metodo1:
I punti seguenti descrivono come bloccare alcune celle utilizzando MS Excel. Questo metodo si applica a Microsoft Office Excel 97, 2000, 2002, 2003 e versioni superiori.
-
Seleziona l’intero foglio di lavoro facendo clic sul pulsante Seleziona tutto (il rettangolo grigio direttamente sopra il numero di riga per la riga 1 e alla sinistra della lettera della colonna A).
-
Fare clic su Celle nel menu Formato, fare clic sulla scheda Protezione e quindi deselezionare la casella di controllo Bloccata.
Questo sblocca tutte le celle sul foglio di lavoro
- Selezionare solo le celle che si desidera bloccare e ripetere il passaggio 2, ma questa volta selezionare la casella di controllo Bloccata.
- Nel menu Strumenti, selezionare Protezione, fare clic su Proteggi foglio e poi su OK.
Metodo2:
In questo metodo, utilizziamo solo l’API Aspose.Cells per eseguire il compito.
L’esempio seguente mostra come proteggere alcune celle nel foglio di lavoro. Sblocca tutte le celle nel foglio di lavoro e quindi blocca 3 celle (A1, B1, C1) in esso. Infine, protegge il foglio di lavoro. Una riga/colonna ha un’API Style che contiene ulteriormente un metodo setLocked . È possibile utilizzare questo metodo per bloccare o sbloccare la riga/colonna.
Proteggere una riga nel foglio di lavoro
Aspose.Cells consente di bloccare facilmente qualsiasi riga nel foglio di lavoro. Qui, possiamo utilizzare il metodo applyStyle() della classe Row per applicare uno stile a una riga specifica nel foglio di lavoro. Questo metodo richiede due argomenti: un oggetto Style e una struttura StyleFlag che ha tutti i membri relativi alla formattazione applicata.
L’esempio seguente mostra come proteggere una riga nel foglio di lavoro. Sblocca tutte le celle nel foglio di lavoro e quindi blocca la prima riga. Infine protegge il foglio di lavoro. Una riga/colonna ha un’API Style che contiene ulteriormente un metodo setCellLocked . È possibile bloccare o sbloccare la riga/colonna utilizzando la struttura StyleFlag.
Proteggere una colonna nel foglio di lavoro
Aspose.Cells consente di bloccare facilmente qualsiasi colonna nel foglio di lavoro. Qui possiamo utilizzare il metodo applyStyle() della classe Column per applicare uno stile a una colonna specifica nel foglio di lavoro. Questo metodo richiede due argomenti: un oggetto Style e una struttura StyleFlag che contiene tutti i membri relativi al formato applicato.
L’esempio seguente mostra come proteggere una colonna nel foglio di lavoro. Sblocca prima tutte le celle nel foglio di lavoro e quindi blocca la prima colonna. Infine, protegge il foglio di lavoro. Una riga/colonna ha una API di stile che contiene il metodo set Locked. È possibile bloccare o sbloccare la riga/colonna utilizzando la struttura StyleFlag.
Sblocca un foglio di lavoro
Protezione dei fogli di lavoro e Impostazioni di protezione avanzate da Excel XP in poi discutono approcci diversi per proteggere i fogli di lavoro. Cosa succede se uno sviluppatore ha bisogno di rimuovere la protezione da un foglio di lavoro protetto durante l’esecuzione in modo che possano apportare alcune modifiche al file? Questo può essere facilmente fatto con Aspose.Cells.
Utilizzando Microsoft Excel
Per rimuovere la protezione da un foglio di lavoro:
Dal menu Strumenti, seleziona Protezione seguito da Sblocca foglio.
Selezione di Sblocca foglio
La protezione viene rimossa, a meno che il foglio di lavoro sia protetto da password. In tal caso, compare un messaggio che richiede la password.
Immettere la password per sbloccare il foglio di lavoro
Usare Aspose.Cells
Un foglio di lavoro può essere sbloccato chiamando il metodo Unprotect della classe Worksheet. Il metodo Unprotect può essere utilizzato in due modi, descritti di seguito.
Sbloccare un foglio di lavoro semplicemente protetto
Un foglio di lavoro semplicemente protetto è uno che non è protetto da password. Tali fogli di lavoro possono essere sbloccati chiamando il metodo sblocca senza passare un parametro.
Sbloccare un foglio di lavoro protetto da password
Un foglio di lavoro protetto da password è uno protetto da una password. Tali fogli di lavoro possono essere sbloccati chiamando una versione sovraccaricata del metodo sblocca che richiede la password come parametro.
Impostazioni di protezione avanzate da Excel XP in poi
Protezione dei fogli di lavoro discute della protezione di un foglio di lavoro in Microsoft Excel 97 e 2000. Ma dal rilascio di Excel 2002 o XP, Microsoft ha aggiunto molte impostazioni di protezione avanzate. Queste impostazioni di protezione limitano o consentono agli utenti di:
- Eliminare righe o colonne.
- Modificare contenuti, oggetti o scenari.
- Formattare celle, righe o colonne.
- Inserire righe, colonne o collegamenti ipertestuali.
- Selezionare celle bloccate o sbloccate.
- Usare tabelle pivot e molto altro.
Aspose.Cells supporta tutte le impostazioni avanzate di protezione offerte da Excel XP e versioni successive.
Impostazioni di protezione avanzate utilizzando Excel XP e versioni successive
Per visualizzare le impostazioni di protezione disponibili in Excel XP:
-
Dal menu Strumenti, seleziona Protezione seguito da Proteggi foglio. Viene visualizzata una finestra di dialogo.
Finestra di dialogo per mostrare le opzioni di protezione in Excel XP
- Consentire o limitare le funzionalità dei fogli di lavoro o applicare una password.
Impostazioni di protezione avanzate utilizzando Aspose.Cells
Aspose.Cells supporta tutte le impostazioni avanzate di protezione.
Aspose.Cells fornisce una classe, Workbook, che rappresenta un file Microsoft Excel. La classe Workbook contiene una raccolta WorksheetCollection che consente l’accesso a ogni foglio di lavoro nel file Excel. Un foglio di lavoro è rappresentato dalla classe Worksheet.
La classe Worksheet fornisce la proprietà Protection che viene utilizzata per applicare queste impostazioni di protezione avanzate. La proprietà Protection è infatti un oggetto della classe Protection che racchiude diverse proprietà booleane per disabilitare o abilitare le restrizioni.
Di seguito è riportato un piccolo esempio di applicazione. Apre un file Excel e utilizza la maggior parte delle impostazioni avanzate di protezione supportate da Excel XP e versioni successive.
Problema di blocco delle celle
Se si desidera impedire agli utenti di modificare le celle, le celle devono essere bloccate prima di applicare qualsiasi impostazione di protezione. In caso contrario, le celle possono essere modificate anche se il foglio di lavoro è protetto. In Microsoft Excel XP, le celle possono essere bloccate attraverso la seguente finestra di dialogo:
Finestra di dialogo per bloccare le celle in Excel XP
È possibile bloccare le celle anche utilizzando l’API Aspose.Cells. Ogni cella ha un’API di stile che contiene ulteriori un metodo setLocked. Usalo per bloccare o sbloccare le celle.