在日常开发中,我们常常需要读取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文件内容的资料请关注代码网其它相关文章!
发表评论