Buscar datos
Encontrar celdas que contienen datos especificados
Usar Microsoft Excel
Microsoft Excel permite a los usuarios encontrar celdas en una hoja de cálculo que contienen datos especificados. Si seleccionas Editar en el menú Buscar de Microsoft Excel, verás un cuadro de diálogo en el que podrás especificar el valor de búsqueda.
Aquí, estamos buscando el valor “Naranjas”. Aspose.Cells también permite a los desarrolladores encontrar celdas en la hoja de cálculo que contienen valores especificados.
Usar Aspose.Cells
Aspose.Cells proporciona una clase, Workbook, que representa un archivo de Microsoft Excel. La clase Workbook contiene una colección Worksheets que permite acceder a cada hoja de cálculo en el archivo de Excel. Una hoja de cálculo está representada por la clase Worksheet. La clase Worksheet proporciona una colección Cells 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.
Buscar celdas que contienen una fórmula
Los desarrolladores pueden encontrar una fórmula especificada en la hoja de cálculo llamando al método Find de la colección Cells. Típicamente, el método Find acepta tres parámetros:
- Objeto: El objeto que se va a buscar. El tipo debe ser int, double, DateTime, string, bool.
- Celda anterior: Celda anterior con el mismo objeto. Este parámetro puede establecerse en nulo si se busca desde el principio.
- Opciones de búsqueda: Opciones para encontrar el objeto requerido.
Los ejemplos a continuación utilizan datos de hoja de cálculo para practicar los métodos de búsqueda:
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Opening the Excel file | |
Workbook workbook = new Workbook(sourceDir + "sampleFindingCellsContainingFormula.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Instantiate FindOptions Object | |
FindOptions findOptions = new FindOptions(); | |
findOptions.LookInType = LookInType.Formulas; | |
// Finding the cell containing the specified formula | |
Cell cell = worksheet.Cells.Find("=SUM(A5:A10)", null, findOptions); | |
// Printing the name of the cell found after searching worksheet | |
System.Console.WriteLine("Name of the cell containing formula: " + cell.Name); |
Encontrar datos o fórmulas utilizando FindOptions
Es posible encontrar valores especificados utilizando el método Find de la colección Cells con varios FindOptions. Típicamente, el método Find acepta los siguientes parámetros:
- Valor de búsqueda, los datos o valores a buscar.
- Celda anterior, la última celda que contenía el mismo valor. Este parámetro puede establecerse en nulo al buscar desde el principio.
- Opciones de búsqueda, las opciones de búsqueda.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Instantiate the workbook object | |
Workbook workbook = new Workbook(sourceDir + "sampleFindingDataOrFormulasUsingFindOptions.xlsx"); | |
workbook.CalculateFormula(); | |
// Get Cells collection | |
Cells cells = workbook.Worksheets[0].Cells; | |
// Instantiate FindOptions Object | |
FindOptions findOptions = new FindOptions(); | |
// Create a Cells Area | |
CellArea ca = new CellArea(); | |
ca.StartRow = 8; | |
ca.StartColumn = 2; | |
ca.EndRow = 17; | |
ca.EndColumn = 13; | |
// Set cells area for find options | |
findOptions.SetRange(ca); | |
// Set searching properties | |
findOptions.SearchBackward = false; | |
findOptions.SearchOrderByRows = true; | |
// Set the lookintype, you may specify, values, formulas, comments etc. | |
findOptions.LookInType = LookInType.Values; | |
// Set the lookattype, you may specify Match entire content, endswith, starwith etc. | |
findOptions.LookAtType = LookAtType.EntireContent; | |
// Find the cell with value | |
Cell cell = cells.Find(341, null, findOptions); | |
if (cell != null) | |
{ | |
Console.WriteLine("Name of the cell containing the value: " + cell.Name); | |
} | |
else | |
{ | |
Console.WriteLine("Record not found "); | |
} |
Encontrar celdas que contengan un valor de cadena o número especificado
Es posible encontrar valores de cadena especificados llamando al mismo método Find encontrado en la colección Cells con varios FindOptions.
Especifique las propiedades FindOptions.LookInType y FindOptions.LookAtType. El siguiente ejemplo de código ilustra cómo utilizar estas propiedades para encontrar celdas con varios números de cadenas al principio o al centro o al final de la cadena de la celda.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiate the workbook object | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Get Cells collection | |
Cells cells = workbook.Worksheets[0].Cells; | |
FindOptions opts = new FindOptions(); | |
opts.LookInType = LookInType.Values; | |
opts.LookAtType = LookAtType.EntireContent; | |
// Find the cell with the input integer or double | |
Cell cell1 = cells.Find(205, null, opts); | |
if (cell1 != null) | |
{ | |
Console.WriteLine("Name of the cell containing the value: " + cell1.Name); | |
} | |
else | |
{ | |
Console.WriteLine("Record not found "); | |
} | |
// Find the cell with the input string | |
Aspose.Cells.Cell cell2 = cells.Find("Items A", null, opts); | |
if (cell2 != null) | |
{ | |
Console.WriteLine("Name of the cell containing the value: " + cell2.Name); | |
} | |
else | |
{ | |
Console.WriteLine("Record not found "); | |
} | |
// Find the cell containing with the input string | |
opts.LookAtType = LookAtType.Contains; | |
Cell cell3 = cells.Find("Data", null, opts); | |
if (cell3 != null) | |
{ | |
Console.WriteLine("Name of the cell containing the value: " + cell3.Name); | |
} | |
else | |
{ | |
Console.WriteLine("Record not found "); | |
} |