Pesquisar dados no Excel usando Java

As planilhas do Excel permitem armazenar uma enorme quantidade de dados em forma de tabela. Em certos casos, podemos precisar pesquisar células que contenham valores de dados específicos ou strings de dados armazenados. Embora o Excel forneça funcionalidade integrada para pesquisar em todas as planilhas, talvez seja necessário executar a operação de pesquisa programaticamente em aplicativos Java. Neste artigo, aprenderemos como pesquisar dados no Excel usando Java.

Os seguintes tópicos serão abordados neste artigo:

API Java para pesquisar dados no Excel

Usaremos a API Aspose.Cells for Java para realizar a operação de pesquisa no arquivo XLSX. Permite executar recursos de automação do Excel programaticamente sem a necessidade de um aplicativo Microsoft Excel. Faça o download 12 do JAR da API ou apenas adicione a seguinte configuração pom.xml em um aplicativo Java baseado em Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>22.1</version>
</dependency>

Localizar texto específico no Excel usando Java

Podemos pesquisar qualquer valor de texto, número ou data em um arquivo Excel seguindo as etapas abaixo:

  • Primeiramente, carregue um arquivo Excel usando a classe Workbook.
  • Em seguida, acessando a primeira planilha do arquivo Excel.
  • Em seguida, obtenha células da planilha acessada.
  • Em seguida, crie uma instância da classe FindOptions.
  • Depois disso, defina o LookAtType como “ENTIRECONTENT”.
  • Finalmente, encontre o texto usando o método Cells.find(). Leva, string de pesquisa e FindOptions como argumentos.

O exemplo de código a seguir mostra como localizar um texto específico em um arquivo do Excel usando Java.

// Carregar um arquivo do Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Obter todas as células em CellCollections
Cells cells = worksheet.getCells();

// Inicializar FindOptions
FindOptions findOptions = new FindOptions();

// Encontre a célula que contém um valor de string
findOptions.setLookAtType(LookAtType.ENTIRE_CONTENT);
Cell cell = cells.find("A Company", null, findOptions);

// Mostrar o nome da célula e seu valor
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());
Localizar texto específico no Excel usando Java

Encontre texto específico no Excel usando Java.

Localizar texto começando com letras específicas

Podemos pesquisar qualquer valor de texto que comece com letras específicas seguindo as etapas mencionadas acima. No entanto, só precisamos definir LookAtType como “STARTWITH”.

O exemplo de código a seguir mostra como localizar um texto específico que começa com a letra “H” em um arquivo do Excel usando Java.

// Carregar um arquivo do Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Obter todas as células em CellCollections
Cells cells = worksheet.getCells();

// Inicializar FindOptions
FindOptions findOptions = new FindOptions();

// Encontre a célula que contém um valor de string
findOptions.setLookAtType(LookAtType.START_WITH);
Cell cell = cells.find("H", null, findOptions);

// Mostrar o nome da célula e seu valor
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());
Find Text Starting with Specific Letters.

Texto de pesquisa que termina com letras específicas

Podemos pesquisar qualquer valor de texto que termine com letras específicas seguindo as etapas mencionadas acima. No entanto, só precisamos definir LookAtType como “ENDWITH”.

O exemplo de código a seguir mostra como localizar um texto específico que termina com as letras “qualquer” em um arquivo do Excel usando Java.

// Carregar um arquivo do Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Obter todas as células em CellCollections
Cells cells = worksheet.getCells();

// Inicializar FindOptions
FindOptions findOptions = new FindOptions();

// Encontre a célula que contém um valor de string
findOptions.setLookAtType(LookAtType.ENDS_WITH);
Cell cell = cells.find("any", null, findOptions);

// Mostrar o nome da célula e seu valor
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());

Localizar texto contendo letras específicas

Podemos pesquisar qualquer valor de texto que contenha qualquer substring específica seguindo as etapas mencionadas acima. No entanto, só precisamos definir LookAtType como “CONTAINS”.

O exemplo de código a seguir mostra como localizar um texto que contém “comp” em um arquivo do Excel usando Java.

// Carregar um arquivo do Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Obter todas as células em CellCollections
Cells cells = worksheet.getCells();

// Inicializar FindOptions
FindOptions findOptions = new FindOptions();

// Encontre a célula que contém um valor de string
findOptions.setLookAtType(LookAtType.CONTAINS);
Cell cell = cells.find("comp", null, findOptions);

// Mostrar o nome da célula e seu valor
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());

Pesquisa com Expressão Regular no Excel usando Java

Também podemos pesquisar um valor de célula usando expressões regulares seguindo as etapas mencionadas acima. No entanto, precisamos apenas definir a Regex Key como true e o LookAtType como “CONTAINS”.

O exemplo de código a seguir mostra como localizar texto usando uma expressão regular em um arquivo do Excel usando Java.

// Carregar um arquivo do Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Obter todas as células em CellCollections
Cells cells = worksheet.getCells();

// Inicializar FindOptions
FindOptions findOptions = new FindOptions();

// Defina-o como Regex
findOptions.setRegexKey(true);
findOptions.setLookAtType(LookAtType.ENTIRE_CONTENT);
findOptions.setLookInType(LookInType.VALUES);
Cell cell = cells.find("[a-z]{1}[\\s]&[\\s][a-z]{1}", null, opt);

// Mostrar o nome da célula e seu valor
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());
Pesquisa com Expressão Regular no Excel usando Java

Pesquisa com Expressão Regular no Excel usando Java.

Pesquisa sensível a maiúsculas e minúsculas no Excel usando Java

Podemos realizar uma operação de pesquisa e encontrar qualquer string de texto com distinção entre maiúsculas e minúsculas seguindo as etapas mencionadas acima. No entanto, precisamos apenas definir a propriedade CaseSensitive como true.

O exemplo de código a seguir mostra como localizar um texto que diferencia maiúsculas de minúsculas em um arquivo do Excel usando Java.

// Carregar um arquivo do Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Obter todas as células em CellCollections
Cells cells = worksheet.getCells();

// Inicializar FindOptions
FindOptions findOptions = new FindOptions();

// Encontre a célula que contém uma fórmula
findOptions.setCaseSensitive(true);
findOptions.setLookAtType(LookAtType.CONTAINS);
Cell cell = cells.find("Ltd", null, findOptions);

// Mostrar o nome da célula e seu valor
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());

Fórmula de pesquisa no Excel usando Java

Podemos pesquisar uma célula contendo fórmula em um arquivo Excel seguindo as etapas abaixo:

  • Primeiramente, carregue um arquivo Excel usando a classe Workbook.
  • Em seguida, acessando a primeira planilha do arquivo Excel.
  • Em seguida, obtenha as células da planilha acessada.
  • Em seguida, crie uma instância da classe FindOptions.
  • Depois disso, defina o LookInType como “FORMULAS”.
  • Finalmente, encontre o texto usando o método Cells.find(). Leva, string de pesquisa e FindOptions como argumentos.

O exemplo de código a seguir mostra como localizar uma célula de fórmula em um arquivo do Excel usando Java.

// Carregar um arquivo do Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Obter todas as células em CellCollections
Cells cells = worksheet.getCells();

// Inicializar FindOptions
FindOptions findOptions = new FindOptions();

// Encontre a célula que contém uma fórmula
findOptions.setLookInType(LookInType.FORMULAS);
Cell cell = cells.find("=SUM(C2:C10)", null, findOptions);

// Mostrar o nome da célula e seu valor
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());
Fórmula de pesquisa no Excel usando Java.

Fórmula de pesquisa no Excel usando Java.

Obtenha uma licença gratuita

Experimente a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, aprendemos como encontrar texto ou fórmulas no Excel usando Java. Especificamente, aprendemos como pesquisar qualquer texto no Excel que inicie, termine ou contenha letras específicas programaticamente. Também vimos como pesquisar usando expressões regulares em arquivos do Excel. Além disso, você pode aprender mais sobre Aspose.Cells for Java API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também