使用Java读取Excel文件内容的三种方法
作者:大丸子
在日常开发中,我们常常需要读取Excel文件中的数据进行进一步处理,无论是批量导入数据、统计分析,还是自动化表格处理,Java都可以提供高效、稳定的读取方式,本文将介绍如何使用 Spire.XLS for Java 读取Excel文件中的内容,需要的朋友可以参考下
在日常开发中,我们常常需要读取Excel文件中的数据进行进一步处理。无论是批量导入数据、统计分析,还是自动化表格处理,Java都可以提供高效、稳定的读取方式。
本文将介绍如何使用 Spire.XLS for Java 读取Excel文件中的内容,涵盖从文件或流中加载、按单元格读取文本和数值、识别单元格类型以及提取公式等多种实用技巧。示例代码简单明了,适合初学者上手,也可作为构建复杂Excel处理功能的基础。
- 方法1:从Excel文件中逐行读取所有内容
- 方法2:通过InputStream读取Excel文件
- 方法3:读取单元格的不同数据类型
Maven:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>5.3.0</version>
</dependency>方法1:从Excel文件中逐行读取所有内容
如果我们需要读取整个表格的数据,可以通过遍历工作表中所有已用单元格来获取值。
示例代码
import com.spire.xls.*;
public class ReadExcel {
public static void main(String[] args) {
// 创建Workbook对象并加载Excel文件
Workbook workbook = new Workbook();
workbook.loadFromFile("data.xlsx"); // 或 "data.xls"
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 遍历每一行每一列,读取单元格内容
for (int i = 1; i <= sheet.getLastRow(); i++) {
for (int j = 1; j <= sheet.getLastColumn(); j++) {
String cellText = sheet.getCellRange(i, j).getValue();
System.out.print(cellText + "\t");
}
System.out.println();
}
}
}说明:
getCellRange(i, j).getValue()用于获取单元格的原始字符串值。- 行列索引从1开始,与Excel中一致。
读取结果:

方法2:通过InputStream读取Excel文件
当Excel文件来自网络、数据库或其他流形式时,我们可以通过 InputStream 加载它,无需将文件先保存在磁盘。
示例代码
import com.spire.xls.*;
import java.io.*;
public class ReadExcelFromStream {
public static void main(String[] args) throws FileNotFoundException {
// 创建输入流对象
InputStream stream = new FileInputStream("data.xlsx");
// 加载Excel文件
Workbook workbook = new Workbook();
workbook.loadFromStream(stream);
System.out.println("Load Excel file successfully.");
}
}说明:
- 适用于文件上传或Web服务场景。
- 支持
.xls和.xlsx格式。
方法3:读取单元格的不同数据类型
除了文本,Excel单元格中还可能包含数字、布尔值、日期、公式等。下面示例展示如何获取各种数据类型及公式信息。
示例代码
import com.spire.xls.*;
import java.util.Date;
public class ReadCellTypes {
public static void main(String[] args) {
Workbook workbook = new Workbook();
workbook.loadFromFile("data.xlsx");
Worksheet sheet = workbook.getWorksheets().get(0);
CellRange cell = sheet.getRange().get(2, 1); // B2
String text = cell.getText(); // 显示文本
String value = cell.getValue(); // 原始字符串
Object value2 = cell.getValue2(); // 通用对象
String formula = cell.getFormula(); // 公式内容
String result = cell.getEnvalutedValue(); // 公式计算结果
double number = cell.getNumberValue(); // 数值
Date date = cell.getDateTimeValue(); // 日期
boolean bool = cell.getBooleanValue(); // 布尔值
System.out.println("Text: " + text);
System.out.println("Raw Value: " + value);
System.out.println("Formula: " + formula);
System.out.println("Evaluated Result: " + result);
System.out.println("Number: " + number);
System.out.println("Date: " + date);
System.out.println("Boolean: " + bool);
}
}说明:
.getFormula()可提取单元格中的公式表达式。.getEnvalutedValue()返回公式的计算结果。- 不同类型的方法适用于不同格式的单元格。
总结
本文介绍了三种在Java中读取Excel文件的方法,涵盖了从本地文件与流中加载、按行读取数据、以及单元格类型识别等多个实用场景。通过这些技巧,我们可以轻松实现对Excel文件内容的灵活读取与后续处理。
以上就是使用Java读取Excel文件内容的三种方法的详细内容,更多关于Java读取Excel文件内容的资料请关注脚本之家其它相关文章!
