Buscar datos

Buscar celdas que contengan datos específicos

Aspose.Cells proporciona una clase, Workbook, que representa un archivo de Excel. La clase Workbook contiene WorksheetCollection, una colección que permite acceder a cada una de las hojas de cálculo en el archivo de Excel. Una hoja de cálculo está representada por la clase Worksheet.

La clase Worksheet proporciona Cells, una colección que representa todas las celdas en la hoja de cálculo. La colección Cells proporciona varios métodos para encontrar celdas en una hoja de cálculo que contienen datos especificados por el usuario. Algunos de estos métodos se discuten a continuación con más detalle.

Todos los métodos de búsqueda devuelven las referencias de las celdas que contienen el valor de búsqueda especificado.

Buscar que Contienen una Fórmula

Los desarrolladores pueden encontrar una fórmula específica en la hoja de cálculo llamando al método find de la colección de Cells, configurando el FindOptions.setLookInType a LookInType.FORMULAS y pasándolo como parámetro al método find.

Por lo general, el método find acepta dos o más parámetros:

  • Objeto a buscar: representa un objeto que se necesita encontrar en la hoja de cálculo.
  • La celda previa: representa la celda previa con la misma fórmula. Este parámetro puede establecerse en nulo al buscar desde el principio.
  • Opciones de búsqueda: representa los criterios de búsqueda. En los ejemplos a continuación, se utiliza la siguiente información de la hoja de cálculo para practicar los métodos de búsqueda:

Datos de muestra de la hoja de cálculo

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(FindingCellsContainingFormula.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.getWorksheets().get(0);
// Finding the cell containing the specified formula
Cells cells = worksheet.getCells();
FindOptions findOptions = new FindOptions();
findOptions.setLookInType(LookInType.FORMULAS);
Cell cell = cells.find("=SUM(A5:A10)", null, findOptions);
// Printing the name of the cell found after searching worksheet
System.out.println("Name of the cell containing formula: " + cell.getName());

Búsqueda de Cadenas

Buscar celdas que contengan un valor de cadena es fácil y flexible. Existen diferentes formas de búsqueda, por ejemplo, buscar celdas que contengan cadenas que comiencen con un carácter particular o conjunto de caracteres.

Búsqueda de Cadenas que Comienzan con Caracteres Específicos

Para buscar el primer carácter en una cadena, llame al método find de la colección Cells, configure FindOptions.setLookAtType a LookAtType.START_WITH y páselo como parámetro al método find.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(FindingCellsWithStringOrNumber.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.getWorksheets().get(0);
// Finding the cell containing the specified formula
Cells cells = worksheet.getCells();
// Instantiate FindOptions
FindOptions findOptions = new FindOptions();
// Finding the cell containing a string value that starts with "Or"
findOptions.setLookAtType(LookAtType.START_WITH);
Cell cell = cells.find("SH", null, findOptions);
// Printing the name of the cell found after searching worksheet
System.out.println("Name of the cell containing String: " + cell.getName());

Búsqueda de Cadenas que Terminan con Caracteres Específicos

Aspose.Cells también puede encontrar cadenas que terminan con caracteres específicos. Para buscar los últimos caracteres en una cadena, llame al método find de la colección Cells, configure FindOptions.setLookAtType a LookAtType.END_WITH y páselo como parámetro al método find.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(FindingCellsEndWithSpecificCharacters.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.getWorksheets().get(0);
// Finding the cell containing the specified formula
Cells cells = worksheet.getCells();
// Instantiate FindOptions
FindOptions findOptions = new FindOptions();
// Finding the cell containing a string value that ends with "es"
findOptions.setLookAtType(LookAtType.END_WITH);
Cell cell = cells.find("SH", null, findOptions);
// Printing the name of the cell found after searching worksheet
System.out.println("Name of the cell containing String: " + cell.getName());

Búsqueda con Expresiones Regulares: la Función de RegEx

Una expresión regular ofrece un medio conciso y flexible de hacer coincidir (especificar y reconocer) cadenas de texto, como caracteres particulares, palabras o patrones.

Por ejemplo, el patrón de expresión regular abc-*xyz coincide con las cadenas “abc-123-xyz”, “abc-985-xyz” y “abc-pony-xyz”. * es un comodín, por lo que el patrón coincide con cualquier cadena que comience con “abc” y termine con “-xyz”, independientemente de qué caracteres haya en el medio.

Aspose.Cells le permite buscar con expresiones regulares.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(FindingwithRegularExpressions.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.getWorksheets().get(0);
// Finding the cell containing the specified formula
Cells cells = worksheet.getCells();
// Instantiate FindOptions
FindOptions findOptions = new FindOptions();
// Instantiate FindOptions
FindOptions opt = new FindOptions();
// Set the search key of find() method as standard RegEx
opt.setRegexKey(true);
opt.setLookAtType(LookAtType.ENTIRE_CONTENT);
cells.find("abc[\\s]*$", null, opt);

Temas avanzados