使用 Java 在 Excel 中搜索数据

Excel 电子表格允许以表格形式存储大量数据。在某些情况下,我们可能需要从存储的数据中搜索包含特定数据值或字符串的单元格。尽管 Excel 提供了搜索所有电子表格的内置功能,但我们可能需要在 Java 应用程序中以编程方式执行搜索操作。在本文中,我们将学习如何使用 Java 在 Excel 中搜索数据

本文将涵盖以下主题:

用于在 Excel 中搜索数据的 Java API

我们将使用 Aspose.Cells for Java API 对 XLSX 文件执行搜索操作。它允许以编程方式执行 Excel 自动化功能,而无需 Microsoft Excel 应用程序。请下载 API 的 JAR 或在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置。

<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>

使用 Java 在 Excel 中查找特定文本

我们可以按照以下步骤在 Excel 文件中搜索任何文本、数字或日期值:

  • 首先,使用 Workbook 类加载一个 Excel 文件。
  • 接下来,访问 Excel 文件中的第一个 worksheet
  • 然后,获取访问工作表的cells
  • 接下来,创建 FindOptions 类的实例。
  • 之后,将 LookAtType 设置为“ENTIRE_CONTENT”。
  • 最后,使用 Cells.find() 方法查找文本。它需要搜索字符串和 FindOptions 作为参数。

以下代码示例展示了如何使用 Java 在 Excel 文件中查找特定文本。

// 加载 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());
使用 Java 在 Excel 中查找特定文本

使用 Java 在 Excel 中查找特定文本。

查找以特定字母开头的文本

我们可以按照上述步骤搜索以特定字母开头的任何文本值。但是,我们只需要将 LookAtType 设置为“START_WITH”。

以下代码示例显示了如何使用 Java 在 Excel 文件中查找以字母“H”开头的特定文本。

// 加载 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());
Find Text Starting with Specific Letters.

Find Text Starting with Specific Letters.

搜索以特定字母结尾的文本

我们可以按照上述步骤搜索以特定字母结尾的任何文本值。但是,我们只需要将 LookAtType 设置为“END_WITH”。

以下代码示例显示了如何使用 Java 在 Excel 文件中查找以字母“any”结尾的特定文本。

// 加载 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 设置为“CONTAINS”。

以下代码示例显示了如何使用 Java 在 Excel 文件中查找包含“comp”的文本。

// 加载 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());

使用 Java 在 Excel 中使用正则表达式进行搜索

我们还可以按照上述步骤使用正则表达式搜索单元格值。但是,我们只需要将 Regex Key 设置为 true,并将 LookAtType 设置为“CONTAINS”。

以下代码示例展示了如何使用 Java 在 Excel 文件中使用正则表达式查找文本

// 加载 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());
使用 Java 在 Excel 中使用正则表达式进行搜索

使用 Java 在 Excel 中使用正则表达式进行搜索。

使用 Java 在 Excel 中进行区分大小写的搜索

我们可以按照上述步骤执行搜索操作并查找任何区分大小写的文本字符串。但是,我们只需要将 CaseSensitive 属性设置为 true。

以下代码示例展示了如何使用 Java 在 Excel 文件中查找区分大小写的文本

// 加载 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());

使用 Java 在 Excel 中搜索公式

我们可以按照以下步骤在 Excel 文件中搜索包含公式的单元格:

  • 首先,使用 Workbook 类加载一个 Excel 文件。
  • 接下来,访问 Excel 文件中的第一个工作表。
  • 然后,获取访问工作表的单元格。
  • 接下来,创建 FindOptions 类的实例。
  • 之后,将 LookInType 设置为“FORMULAS”。
  • 最后,使用 Cells.find() 方法查找文本。它需要搜索字符串和 FindOptions 作为参数。

以下代码示例展示了如何使用 Java 在 Excel 文件中查找公式单元格。

// 加载 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());
使用 Java 在 Excel 中搜索公式。

使用 Java 在 Excel 中搜索公式。

获得免费许可证

请通过请求 免费的临时许可证 来尝试不受评估限制的 API。

结论

在本文中,我们学习了如何使用 Java 在 Excel 中查找文本或公式。具体来说,我们已经学习了如何在 Excel 中以编程方式搜索任何开始、结束或包含特定字母的文本。我们还看到了如何在 Excel 文件中使用正则表达式进行搜索。此外,您可以使用 documentation 了解更多关于 Aspose.Cells for Java API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看