在日常数据处理工作中,我们经常需要从 Excel 表格中提取插入的文本框内容,比如汇总备注、审阅意见等。但如果手动复制粘贴,效率低,且容易出错。本文将介绍如何使用 Spire.XLS for Java 快速批量提取 Excel 中文本框的内容,提高工作效率。
安装 Java 库助力自动化提取文本框内容
Spire.XLS for Java 是一款功能强大的 Excel 处理库,可让 Java 开发者无需安装 Microsoft Office 即可操作 Excel 文件。它支持读取、创建、修改、转换 Excel 等基础功能,同时也能访问和操作工作表中的文本框、图片、图表等对象。 你可以通过下面两种方法安装这个 Java 库:
方案一:如果你使用 Maven,可以在 pom.xml
文件中添加以下依赖:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>15.6.3</version>
</dependency>
</dependencies>
方案二:你也可以下载 Spire.XLS 的安装包,解压后将其中的 .jar
文件手动添加到你的 Java 编译器或构建路径中。
提取 Excel 中单个文本框的内容
如果你的 Excel 文件中只包含一个文本框,或者你清楚自己需要提取的是特定的文本框内容,那么可以使用本章介绍的方法直接读取并打印该文本框的内容。这种方式非常简单快捷,适用于仅需在控制台查看文本结果的场景,为后续将内容保存到文本文件打下基础。接下来,让我们看看如何通过 Java 代码实现这个目标。
详细步骤解析:
- 创建 Workbook 对象,并导入一个 Excel 文件。
- 获取一个工作表。
- 使用 Worksheet.getTextBoxes().get() 方法获取指定文本框。
- 通过 XlsTextBoxShape.getText() 方法获取该文本框中的内容。
- 将提取的文本打印在控制台。
下方的代码演示了如何使用 Java 提取第二个工作表中第一个文本框的内容,并将其打印到控制台上:
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.spreadsheet.shapes.XlsTextBoxShape;
public class ExtractTextFromTextbox {
public static void main(String[] args) {
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载示例文档
workbook.loadFromFile("/示例文档.xlsx");
// 获取第二个工作表
Worksheet sheet = workbook.getWorksheets().get(1);
//获取第二个文本框
XlsTextBoxShape shape = (XlsTextBoxShape)sheet.getTextBoxes().get(0);
// 获取文本框中的文本
String text = shape.getText();
System.out.print(text);
}
}
提取 Excel 中所有文本框的内容
在上一章中,我们了解了如何读取单个文本框的内容并将其打印到控制台。然而,在实际工作中,Excel 文件往往包含多个文本框。本章将介绍如何通过循环一次性提取所有文本框的内容,为批量处理提供便利。
事实上,提取所有 Excel 中文本框的过程与提取单个文本框几乎一致,唯一的区别是在获取内容前需要使用 for 循环遍历所有文本框。具体的实现可以参考以下代码示例。
下方代码展示了怎样获取第二个工作表中的所有文本框的内容,并将其打印在控制台上:
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.spreadsheet.shapes.XlsTextBoxShape;
public class ExtractTextFromTextbox {
public static void main(String[] args) {
// 创建Workbook对象
Workbook workbook = new Workbook();
// 加载示例文档
workbook.loadFromFile("/示例文档.xlsx");
// 获取第二个工作表
Worksheet sheet = workbook.getWorksheets().get(1);
// 遍历所有文本框
for (int i = 0; i < sheet.getTextBoxes().getCount(); i++) {
XlsTextBoxShape shape = (XlsTextBoxShape) sheet.getTextBoxes().get(i);
String text = shape.getText();
System.out.println("文本框" + (i + 1) + ": " + text);
}
}
}
获取 Excel 文本框内容并保存为 Text 文档
当然,获取文本框内容的目的往往不仅仅是为了查看,还可能需要对其进行后续处理,比如提炼关键信息用于撰写报告,或者将内容整合到其他文件中。因此,将提取到的 Excel 文本框内容保存为文本文件,会更加方便后续使用和管理。
关键步骤:
- 重复前面获取所有文本框内容的过程:加载工作簿、获取工作表、循环遍历文本框。
- 在循环中,将提取到的每条文本内容使用追加模式写入指定的文本文件中,从而保存所有文本框内容到文件中。
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.spreadsheet.shapes.XlsTextBoxShape;
import java.io.FileWriter;
import java.io.IOException;
public class ExtractAndSaveText {
public static void main(String[] args) {
Workbook workbook = new Workbook();
workbook.loadFromFile("/示例文档.xlsx");
Worksheet sheet = workbook.getWorksheets().get(1);
// 遍历所有文本框
for (int i = 0; i < sheet.getTextBoxes().getCount(); i++) {
XlsTextBoxShape shape = (XlsTextBoxShape) sheet.getTextBoxes().get(i);
String text = shape.getText();
// 保存到文件
saveTextToFile("文本框 " + (i + 1) + ": " + text);
}
}
public static void saveTextToFile(String text) {
try {
FileWriter writer = new FileWriter("/提取文本.txt", true);
writer.write(text + "\n");
writer.close();
System.out.println("文本已保存");
} catch (IOException e) {
e.printStackTrace();
}
}
}
结语
通过以上步骤,我们成功实现了从 Excel 中批量提取文本框内容,并将其保存到文本文件中。这不仅提高了处理效率,也为后续的数据整理和报告编制打下了良好基础。如果你对本文使用的 Spire.XLS for Java 感兴趣,也可以联系我们申请30天免费试用!