Proteger e desproteger arquivos do Excel

O Microsoft Excel é um software popular para gerenciamento de dados nas organizações. Isso se deve principalmente aos seus recursos avançados de manipulação e representação de dados. Nesta era tecnológica, os documentos são compartilhados virtualmente em vez de cópias impressas. Esses arquivos podem conter dados complexos e confidenciais. Portanto, para manter a integridade desses arquivos, talvez seja necessário protegê-los contra modificações. Os recursos de proteção do Excel são úteis para essa finalidade. Neste artigo, você aprenderá como proteger e desproteger arquivos do Excel programaticamente usando C++.

API C++ para proteger e desproteger arquivos do Excel - Download grátis

Aspose.Cells for C++ é uma biblioteca nativa de C++ que permite manipular arquivos do Excel sem exigir a instalação do Microsoft Excel. Portanto, ele é usado para automatizar muitos fluxos de trabalho do Excel. A API fornece vários recursos úteis, incluindo proteger e desproteger arquivos do Excel. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.

PM> Install-Package Aspose.Cells.Cpp

Proteja arquivos do Excel usando C++

Aspose.Cells para C++ fornece os seguintes tipos de proteção para proteger arquivos do Excel.

  • Todos: Proteja todos os dados para que o usuário não possa modificar nada.
  • Conteúdo: Proteja o conteúdo da planilha.
  • Objetos: Proteja os objetos na planilha para que o usuário não possa modificar objetos de desenho.
  • Cenários: Proteja os cenários na planilha.
  • Estrutura: Proteja a estrutura da pasta de trabalho.
  • Windows: Proteja as janelas salvas contra modificações.
  • Nenhum: Nenhuma proteção aplicada.

A seguir estão as etapas para proteger arquivos do Excel usando C++.

O exemplo de código a seguir mostra como proteger arquivos do Excel usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar arquivo Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));

// Proteja a pasta de trabalho especificando o tipo de proteção
workbook->Protect(ProtectionType::ProtectionType_All, new String("12345"));

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protected_out.xlsx")));

Desproteger a pasta de trabalho do Excel usando C++

A seguir estão as etapas para desproteger um arquivo do Excel.

O exemplo de código a seguir mostra como desproteger arquivos do Excel.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar arquivo Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtected.xlsx")));

// Desproteger pasta de trabalho
workbook->Unprotect(new String("12345"));

// Definir senha como nula
workbook->GetISettings()->SetPassword(NULL);

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotected_out.xlsx")));

Proteja a planilha do Excel usando C++

Além de proteger os arquivos do Excel, você também pode proteger planilhas individuais. Use as etapas a seguir para proteger planilhas do Excel.

O exemplo de código a seguir mostra como proteger a planilha do Excel.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar arquivo Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));

// Acessando a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Acesse a proteção da planilha
intrusive_ptr<IProtection> protection = worksheet->GetIProtection();

// Os 3 métodos a seguir são apenas para formatos Excel 2000 e anteriores
protection->SetAllowEditingContent(false);
protection->SetAllowEditingObject(false);
protection->SetAllowEditingScenario(false);

// Proteja a primeira planilha com uma senha "12345"
protection->SetPassword(new String("12345"));

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protectedWorksheet_out.xlsx")));

Desproteger planilha do Excel usando C++

A seguir estão as etapas para desproteger planilhas do Excel.

O exemplo de código a seguir mostra como desproteger a planilha do Excel usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar arquivo Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtectedWorksheet.xlsx")));

// Acessando a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Desproteger planilha
worksheet->Unprotect(new String("12345"));

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotectedWorksheet_out.xlsx")));

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como proteger e desproteger arquivos do Excel usando C++. Além disso, você também aprendeu a proteger planilhas contra modificações. Aspose.Cells for C++ é uma vasta API de manipulação do Excel para automatizar tarefas como substituir texto em células ou processar dados complexos representados em gráficos e tabelas. Você pode explorar a API em detalhes usando a documentação oficial.

Veja também