Trouver ou rechercher des données
Recherche de cellules contenant des données spécifiées
Utilisation de Microsoft Excel
Microsoft Excel permet aux utilisateurs de rechercher des cellules dans une feuille de calcul contenant des données spécifiques. Si vous sélectionnez Modifier dans le menu Rechercher dans Microsoft Excel, vous verrez une boîte de dialogue où vous pouvez spécifier la valeur de recherche.
Ici, nous recherchons la valeur “Oranges”. Aspose.Cells permet également aux développeurs de trouver des cellules dans la feuille de calcul contenant des valeurs spécifiées.
Utilisation de Aspose.Cells for Node.js via C++
Aspose.Cells fournit une classe, Workbook, qui représente un fichier Microsoft Excel. La classe Workbook contient une collection Workbook.getWorksheets() qui permet d’accéder à chaque feuille de calcul dans le fichier Excel. Une feuille de calcul est représentée par la classe Worksheet. La classe Worksheet fournit une collection getCells() qui représente toutes les cellules dans la feuille. La collection Cells offre plusieurs méthodes pour rechercher des cellules dans une feuille contenant des données saisies par l’utilisateur. Certaines de ces méthodes sont abordées ci-dessous en détail.
Recherche de cellules contenant une formule
Les développeurs peuvent trouver une formule spécifique dans la feuille de calcul en appelant la méthode find de la collection Cells. Généralement, la méthode find accepte trois paramètres :
- Objet : L’objet à rechercher. Le type doit être int, double, DateTime, string, bool.
- Cellule précédente : Cellule précédente contenant le même objet. Ce paramètre peut être défini à null si la recherche commence depuis le début.
- Options de recherche : Options pour rechercher l’objet requis.
Les exemples ci-dessous utilisent les données de la feuille de calcul pour apprendre les méthodes de recherche.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Opening the Excel file | |
const workbook = new AsposeCells.Workbook(path.join(dataDir, "sampleFindingCellsContainingFormula.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Instantiate FindOptions Object | |
const findOptions = new AsposeCells.FindOptions(); | |
findOptions.setLookInType(AsposeCells.LookInType.Formulas); | |
// Finding the cell containing the specified formula | |
const cell = worksheet.getCells().find("=SUM(A5:A10)", null, findOptions); | |
// Printing the name of the cell found after searching worksheet | |
console.log("Name of the cell containing formula: " + cell.getName()); |
Recherche de données ou de formules à l’aide de FindOptions
Il est possible de rechercher des valeurs spécifiées en utilisant la méthode Cells.find(object, Cell) de la collection Cells avec diverses FindOptions. Généralement, la méthode find accepte les paramètres suivants :
- Valeur de recherche, les données ou la valeur à rechercher.
- Cellule précédente, la dernière cellule qui contient la même valeur. Ce paramètre peut être défini sur null lors de la recherche depuis le début.
- Options de recherche, les options de recherche.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data"); | |
// Instantiate the workbook object | |
const workbook = new AsposeCells.Workbook(sourceDir + "sampleFindingDataOrFormulasUsingFindOptions.xlsx"); | |
workbook.calculateFormula(); | |
// Get Cells collection | |
const cells = workbook.getWorksheets().get(0).getCells(); | |
// Instantiate FindOptions Object | |
const findOptions = new AsposeCells.FindOptions(); | |
// Create a Cells Area | |
const ca = new AsposeCells.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.setSearchBackward(false); | |
findOptions.setSearchOrderByRows(true); | |
// Set the lookintype, you may specify, values, formulas, comments etc. | |
findOptions.setLookInType(AsposeCells.LookInType.Values); | |
// Set the lookattype, you may specify Match entire content, endswith, starwith etc. | |
findOptions.setLookAtType(AsposeCells.LookAtType.EntireContent); | |
// Find the cell with value | |
const cell = cells.find(341, null, findOptions); | |
if (cell !== null) { | |
console.log("Name of the cell containing the value: " + cell.getName()); | |
} else { | |
console.log("Record not found "); | |
} |
Recherche des cellules contenant une valeur de chaîne spécifiée ou un nombre.
Il est possible de rechercher des valeurs de chaîne spécifiées en appelant la même méthode find trouvée dans la collection Cells avec diverses FindOptions.
Spécifiez les propriétés FindOptions.setLookInType et FindOptions.setLookAtType. Le code d’exemple suivant montre comment utiliser ces propriétés pour rechercher des cellules avec divers nombres de chaînes au début, au centre ou à la fin de la chaîne de la cellule.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiate the workbook object | |
const workbook = new AsposeCells.Workbook(path.join(dataDir, "book1.xls")); | |
// Get Cells collection | |
const cells = workbook.getWorksheets().get(0).getCells(); | |
const opts = new AsposeCells.FindOptions(); | |
opts.setLookInType(AsposeCells.LookInType.Values); | |
opts.setLookAtType(AsposeCells.LookAtType.EntireContent); | |
// Find the cell with the input integer or double | |
let cell1 = cells.find(205, null, opts); | |
if (cell1 !== null) { | |
console.log("Name of the cell containing the value: " + cell1.getName()); | |
} else { | |
console.log("Record not found "); | |
} | |
// Find the cell with the input string | |
let cell2 = cells.find("Items A", null, opts); | |
if (cell2 !== null) { | |
console.log("Name of the cell containing the value: " + cell2.getName()); | |
} else { | |
console.log("Record not found "); | |
} | |
// Find the cell containing the input string | |
opts.setLookAtType(AsposeCells.LookAtType.Contains); | |
let cell3 = cells.find("Data", null, opts); | |
if (cell3 !== null) { | |
console.log("Name of the cell containing the value: " + cell3.getName()); | |
} else { | |
console.log("Record not found "); | |
} |