Нахождение или Поиск Данных
Поиск ячеек, содержащих указанные данные
Использование Microsoft Excel
Microsoft Excel позволяет пользователям находить ячейки в листе, содержащие указанные данные. Если выбрать Редактировать в меню Найти Microsoft Excel, появится диалоговое окно, в котором можно указать значение поиска.
Здесь мы ищем значение “Апельсины”. Aspose.Cells также позволяет разработчикам находить ячейки в листе с указанными значениями.
Использование Aspose.Cells for Node.js via C++
Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит коллекцию Workbook.getWorksheets(), позволяющую получить доступ к каждому листу в файле Excel. Лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию getCells(), которая отображает все ячейки листа. Коллекция Cells содержит несколько методов для поиска ячеек, содержащих пользовательские данные. Некоторые из этих методов подробно рассматриваются ниже.
Поиск ячеек, содержащих формулу
Разработчики могут найти заданную формулу в листе, вызвав метод find коллекции Cells. Обычно метод find принимает три параметра:
- Объект: объект для поиска. Тип должен быть int, double, DateTime, string, bool.
- Предыдущая ячейка: Предыдущая ячейка с тем же объектом. Этот параметр можно установить в null, если поиск начинать с начала.
- FindOptions: Опции для поиска нужного объекта.
Ниже приведены примеры использования данных листа для тренировки методов поиска:
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()); |
Поиск данных или формул с использованием FindOptions
Возможно найти указанные значения, используя метод Cells.find(object, Cell) коллекции Cells с различными FindOptions. Обычно метод find принимает следующие параметры:
- Значение поиска, данные или значение для поиска.
- Предыдущая ячейка, последняя ячейка, содержавшая то же значение. Этот параметр может быть установлен в null при поиске с начала.
- Параметры поиска, параметры поиска.
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 "); | |
} |
Поиск ячеек, содержащих указанное строковое значение или число
Можно найти указанные строковые значения, вызвав тот же метод find коллекции Cells с различными FindOptions.
Укажите свойства FindOptions.setLookInType и FindOptions.setLookAtType. Следующий пример показывает, как использовать эти свойства для поиска ячеек с различным количеством строк в начале, посередине или в конце строки ячейки.
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 "); | |
} |