Поиск данных в Excel с использованием Java

Электронные таблицы Excel позволяют хранить огромное количество данных в табличной форме. В некоторых случаях нам может потребоваться поиск ячеек, содержащих определенные значения данных или строки из сохраненных данных. Хотя Excel предоставляет встроенные функции для поиска по всем электронным таблицам, нам может потребоваться выполнить операцию поиска программно в приложениях Java. В этой статье мы узнаем, как искать данные в Excel с помощью Java.

В этой статье должны быть раскрыты следующие темы:

Java API для поиска данных в Excel

Мы будем использовать API Aspose.Cells for Java для выполнения операции поиска в файле XLSX. Это позволяет программно выполнять функции автоматизации Excel без необходимости использования приложения Microsoft Excel. Пожалуйста, либо скачайте JAR API, либо просто добавьте следующую конфигурацию pom.xml в приложение Java на основе 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>

Найти определенный текст в Excel с помощью Java

Мы можем искать любые значения текста, числа или даты в файле Excel, выполнив следующие шаги:

  • Во-первых, загрузите файл Excel, используя класс Workbook.
  • Затем доступ к первому рабочему листу в файле Excel.
  • Затем получите ячейки доступного листа.
  • Затем создайте экземпляр класса FindOptions.
  • После этого установите LookAtType как «ENTIRECONTENT».
  • Наконец, найдите текст с помощью метода Cells.find(). Он принимает строку поиска и FindOptions в качестве аргументов.

В следующем примере кода показано, как найти определенный текст в файле Excel с помощью Java.

// Загрузите файл Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Получить все ячейки в CellCollections
Cells cells = worksheet.getCells();

// Инициализировать FindOptions
FindOptions findOptions = new FindOptions();

// Найдите ячейку, содержащую строковое значение
findOptions.setLookAtType(LookAtType.ENTIRE_CONTENT);
Cell cell = cells.find("A Company", null, findOptions);

// Показать имя ячейки и ее значение
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());
Найти определенный текст в Excel с помощью Java

Найти конкретный текст в Excel с помощью Java.

Найти текст, начинающийся с определенных букв

Мы можем искать любое текстовое значение, начинающееся с определенных букв, выполнив шаги, упомянутые выше. Однако нам просто нужно установить LookAtType как «STARTWITH».

В следующем примере кода показано, как найти определенный текст, начинающийся с буквы «H», в файле Excel с помощью Java.

// Загрузите файл Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Получить все ячейки в CellCollections
Cells cells = worksheet.getCells();

// Инициализировать FindOptions
FindOptions findOptions = new FindOptions();

// Найдите ячейку, содержащую строковое значение
findOptions.setLookAtType(LookAtType.START_WITH);
Cell cell = cells.find("H", null, findOptions);

// Показать имя ячейки и ее значение
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());
Найдите текст начинающийся с определенных букв

Найдите текст начинающийся с определенных букв

Поиск текста, заканчивающегося определенными буквами

Мы можем искать любое текстовое значение, которое заканчивается определенными буквами, выполнив шаги, упомянутые выше. Однако нам просто нужно установить LookAtType как «ENDWITH».

В следующем примере кода показано, как найти определенный текст, который заканчивается буквами «любой», в файле Excel с помощью Java.

// Загрузите файл Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Получить все ячейки в CellCollections
Cells cells = worksheet.getCells();

// Инициализировать FindOptions
FindOptions findOptions = new FindOptions();

// Найдите ячейку, содержащую строковое значение
findOptions.setLookAtType(LookAtType.ENDS_WITH);
Cell cell = cells.find("any", null, findOptions);

// Показать имя ячейки и ее значение
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());

Найти текст, содержащий определенные буквы

Мы можем искать любое текстовое значение, содержащее любую конкретную подстроку, выполнив шаги, упомянутые выше. Однако нам просто нужно установить LookAtType как «СОДЕРЖИТ».

В следующем примере кода показано, как найти текст, содержащий слово «comp», в файле Excel с помощью Java.

// Загрузите файл Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Получить все ячейки в CellCollections
Cells cells = worksheet.getCells();

// Инициализировать FindOptions
FindOptions findOptions = new FindOptions();

// Найдите ячейку, содержащую строковое значение
findOptions.setLookAtType(LookAtType.CONTAINS);
Cell cell = cells.find("comp", null, findOptions);

// Показать имя ячейки и ее значение
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());

Поиск с помощью регулярного выражения в Excel с использованием Java

Мы также можем искать значение ячейки с помощью регулярных выражений, выполнив шаги, упомянутые выше. Однако нам просто нужно установить для Regex Key значение true, а для LookAtType — значение «CONTAINS».

В следующем примере кода показано, как найти текст с помощью регулярного выражения в файле Excel с помощью Java.

// Загрузите файл Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Получить все ячейки в CellCollections
Cells cells = worksheet.getCells();

// Инициализировать FindOptions
FindOptions findOptions = new FindOptions();

// Определите его как регулярное выражение
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);

// Показать имя ячейки и ее значение
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());
Поиск с помощью регулярного выражения в Excel с использованием Java

Поиск с помощью регулярных выражений в Excel с использованием Java.

Поиск с учетом регистра в Excel с использованием Java

Мы можем выполнить операцию поиска и найти любую текстовую строку с учетом регистра, выполнив шаги, упомянутые выше. Однако нам просто нужно установить для свойства CaseSensitive значение true.

В следующем примере кода показано, как найти текст с учетом регистра в файле Excel с помощью Java.

// Загрузите файл Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Получить все ячейки в CellCollections
Cells cells = worksheet.getCells();

// Инициализировать FindOptions
FindOptions findOptions = new FindOptions();

// Найдите ячейку, содержащую формулу
findOptions.setCaseSensitive(true);
findOptions.setLookAtType(LookAtType.CONTAINS);
Cell cell = cells.find("Ltd", null, findOptions);

// Показать имя ячейки и ее значение
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());

Формула поиска в Excel с использованием Java

Мы можем найти ячейку, содержащую формулу, в файле Excel, выполнив следующие шаги:

  • Во-первых, загрузите файл Excel, используя класс Workbook.
  • Затем доступ к первому рабочему листу в файле Excel.
  • Затем получите ячейки доступного листа.
  • Затем создайте экземпляр класса FindOptions.
  • После этого установите LookInType как «ФОРМУЛЫ».
  • Наконец, найдите текст с помощью метода Cells.find(). Он принимает строку поиска и FindOptions в качестве аргументов.

В следующем примере кода показано, как найти ячейку формулы в файле Excel с помощью Java.

// Загрузите файл Excel
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.getWorksheets().get(0);

// Получить все ячейки в CellCollections
Cells cells = worksheet.getCells();

// Инициализировать FindOptions
FindOptions findOptions = new FindOptions();

// Найдите ячейку, содержащую формулу
findOptions.setLookInType(LookInType.FORMULAS);
Cell cell = cells.find("=SUM(C2:C10)", null, findOptions);

// Показать имя ячейки и ее значение
System.out.println("Name of the cell containing String: " + cell.getName());
System.out.println("the cell value is: " + cell.getValue());
Формула поиска в Excel с использованием Java.

Формула поиска в Excel с использованием Java.

Получить бесплатную лицензию

Пожалуйста, попробуйте API без ознакомительных ограничений, запросив бесплатную временную лицензию.

Вывод

В этой статье мы узнали, как найти текст или формулы в Excel с помощью Java. В частности, мы научились программно искать в Excel любой текст, который начинается, заканчивается или содержит определенные буквы. Мы также видели, как выполнять поиск с использованием регулярных выражений в файлах Excel. Кроме того, вы можете узнать больше об Aspose.Cells for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также