Proteja células específicas na planilha usando Aspose.Cells

Introdução

Neste tutorial, vamos orientá-lo no processo de proteção de células específicas em uma planilha do Excel. No final, você poderá bloquear células com confiança como um profissional, evitando alterações não autorizadas e mantendo sua planilha flexível onde necessário.

Pré-requisitos

Antes de entrarmos em detalhes, vamos garantir que você tenha tudo o que precisa para seguir este tutorial sem problemas:

  1. Visual Studio – Se você ainda não fez isso, baixe e instale o Visual Studio. Ele será o ambiente primário onde você executará seus aplicativos .NET.
  2. Aspose.Cells para .NET – Você precisará da biblioteca Aspose.Cells para trabalhar com arquivos Excel em seus aplicativos .NET. Se você ainda não a instalou, pode obter a versão mais recente doSite Aspose.
  3. .NET Framework ou .NET Core – Este tutorial funciona tanto com .NET Framework quanto com .NET Core. Apenas certifique-se de que seu projeto seja compatível com Aspose.Cells. Depois de ter tudo isso pronto, você estará pronto para começar.

Pacotes de importação

Antes de pular para o guia passo a passo, você precisa ter certeza de importar os namespaces necessários para trabalhar com Aspose.Cells. No seu projeto, inclua as seguintes instruções de importação no topo do seu arquivo:

using System.IO;
using Aspose.Cells;

Esses namespaces permitirão que você interaja com arquivos do Excel e as classes necessárias para estilizar e proteger as células da planilha. Agora, vamos dividir em etapas simples para proteger células específicas na sua planilha usando o Aspose.Cells for .NET. Protegeremos as células A1, B1 e C1, enquanto deixamos o restante da planilha aberta para edições.

Etapa 1: Crie uma nova pasta de trabalho e planilha

Primeiro, você precisa criar uma nova pasta de trabalho (arquivo Excel) e uma planilha dentro dela. É aqui que você aplicará sua proteção de célula.

// O caminho para o diretório de documentos.
string dataDir = "Your Document Directory";
// Crie um diretório se ele ainda não estiver presente.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
    System.IO.Directory.CreateDirectory(dataDir);
// Crie uma nova pasta de trabalho.
Workbook wb = new Workbook();
// Crie um objeto de planilha e obtenha a primeira planilha.
Worksheet sheet = wb.Worksheets[0];

Nesta etapa, você também está criando um diretório para armazenar o arquivo Excel resultante, caso ele ainda não exista. OWorkbook classe inicializa um novo arquivo Excel eWorksheets[0] nos permite trabalhar com a primeira planilha da pasta de trabalho.

Etapa 2: Desbloquear todas as colunas

Em seguida, você desbloqueará todas as colunas na planilha. Isso garante que, por padrão, todas as células na planilha sejam editáveis. Mais tarde, bloquearemos apenas as células que queremos proteger.

// Defina o objeto de estilo.
Style style;
// Defina o objeto styleflag
StyleFlag styleflag;
// Percorra todas as colunas da planilha e desbloqueie-as.
for (int i = 0; i <= 255; i++)
{
    style = sheet.Cells.Columns[(byte)i].Style;
    style.IsLocked = false;
    styleflag = new StyleFlag();
    styleflag.Locked = true;
    sheet.Cells.Columns[(byte)i].ApplyStyle(style, styleflag);
}

Neste bloco de código, estamos iterando por todas as colunas (até 255) e definindo oIsLocked propriedade parafalse Isso essencialmente desbloqueia todas as células nessas colunas, tornando-as editáveis por padrão. Em seguida, aplicamos o estilo à coluna com oApplyStyle() método.

Etapa 3: Bloqueie células específicas (A1, B1, C1)

Agora que todas as colunas estão desbloqueadas, vamos nos concentrar em bloquear células específicas, a saber, A1, B1 e C1. Modificaremos os estilos de células e definiremos seusIsLocked propriedade paratrue.

// Bloqueie as três células...ou seja, A1, B1, C1.
style = sheet.Cells["A1"].GetStyle();
style.IsLocked = true;
sheet.Cells["A1"].SetStyle(style);
style = sheet.Cells["B1"].GetStyle();
style.IsLocked = true;
sheet.Cells["B1"].SetStyle(style);
style = sheet.Cells["C1"].GetStyle();
style.IsLocked = true;
sheet.Cells["C1"].SetStyle(style);

Esta etapa garante que as células A1, B1 e C1 estejam bloqueadas. Essas são as células que serão protegidas e não poderão ser editadas depois que a proteção da planilha for aplicada.

Etapa 4: Proteja a planilha

Com as células necessárias bloqueadas, o próximo passo é proteger a planilha inteira. Este passo torna as células bloqueadas (A1, B1, C1) não editáveis, enquanto outras células permanecem abertas para edições.

// Por fim, proteja a planilha agora.
sheet.Protect(ProtectionType.All);

OProtect O método é chamado na planilha, especificando que todos os aspectos da planilha devem ser protegidos. Isso bloqueia as células específicas que foram marcadas comIsLocked = true e garante que eles não possam ser alterados pelos usuários.

Etapa 5: Salve a pasta de trabalho

Depois que as células estiverem bloqueadas e a planilha estiver protegida, você poderá salvar a pasta de trabalho no local desejado.

// Salve o arquivo Excel.
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);

Esta etapa salva a pasta de trabalho nodataDir pasta com o nome do arquivooutput.out.xls. Você pode modificar o nome do arquivo e o diretório para atender às suas necessidades. O arquivo é salvo no formato Excel 97-2003, mas você pode ajustar isso dependendo dos seus requisitos.

Conclusão

Proteger células específicas na sua planilha do Excel usando o Aspose.Cells para .NET é um processo simples. Seguindo os passos acima, você pode bloquear certas células enquanto permite que outras permaneçam editáveis. Esse recurso é extremamente útil ao compartilhar pastas de trabalho com outras pessoas, pois ajuda a controlar quais dados podem ser modificados e quais dados devem permanecer protegidos. Esteja você trabalhando em dados confidenciais ou simplesmente prevenindo alterações acidentais, o Aspose.Cells fornece uma solução flexível e poderosa.

Perguntas frequentes

Como posso proteger um intervalo específico de células em vez de apenas algumas?

Você pode modificar o código para percorrer um intervalo específico de células ou colunas e bloqueá-las, em vez de bloquear manualmente células individuais.

Posso adicionar senhas para proteger a planilha?

Sim, você pode especificar uma senha ao chamar oProtect() método para impedir que usuários desprotejam a planilha sem a senha correta.

Posso proteger linhas ou colunas específicas em vez de células?

Sim, o Aspose.Cells permite que você bloqueie linhas ou colunas inteiras modificando oIsLocked propriedade para as linhas ou colunas, semelhante a como bloqueamos as células.

Como posso desproteger uma planilha?

Para desproteger uma planilha, use oUnprotect() método, fornecendo opcionalmente a senha, caso uma tenha sido definida durante a proteção.

Posso usar o Aspose.Cells para outras manipulações do Excel, como adicionar fórmulas ou gráficos?

Absolutamente! Aspose.Cells é uma biblioteca robusta que permite que você execute uma ampla gama de operações do Excel, incluindo adicionar fórmulas, criar gráficos e muito mais.