用Java读取Excel返回对象数组
时间: 2024-05-13 08:19:18 浏览: 100
Java读取Excel数据
可以使用 Apache POI 库来读取 Excel 文件,并将读取到的数据存储在对象数组中。以下是一个简单的示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class ExcelReader {
public static void main(String[] args) throws IOException {
// 文件路径
String filePath = "example.xlsx";
// 创建文件对象
File file = new File(filePath);
// 创建文件输入流
FileInputStream inputStream = new FileInputStream(file);
// 创建工作簿对象
Workbook workbook = WorkbookFactory.create(inputStream);
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 计算总行数
int rowCount = sheet.getLastRowNum() - sheet.getFirstRowNum() + 1;
// 创建对象数组
Object[][] data = new Object[rowCount][];
// 循环读取每一行
for (int i = 0; i < rowCount; i++) {
Row row = sheet.getRow(i);
// 计算总列数
int colCount = row.getLastCellNum() - row.getFirstCellNum();
// 创建行数据数组
Object[] rowdata = new Object[colCount];
// 循环读取每一列
for (int j = 0; j < colCount; j++) {
Cell cell = row.getCell(j);
// 根据不同类型的单元格读取数据
switch (cell.getCellType()) {
case STRING:
rowdata[j] = cell.getStringCellValue();
break;
case NUMERIC:
rowdata[j] = cell.getNumericCellValue();
break;
case BOOLEAN:
rowdata[j] = cell.getBooleanCellValue();
break;
default:
rowdata[j] = null;
break;
}
}
// 将行数据数组添加到对象数组中
data[i] = rowdata;
}
// 关闭工作簿和文件输入流
workbook.close();
inputStream.close();
// 输出对象数组
for (Object[] row : data) {
for (Object cell : row) {
System.out.print(cell + "\t");
}
System.out.println();
}
}
}
```
此代码可以读取名为 "example.xlsx" 的 Excel 文件,并将每个单元格的值存储在对象数组中。你可以根据需要修改此代码来适应你自己的数据结构和文件格式。
阅读全文