Java 读取两个excel表并进行数据处理
时间: 2023-07-18 07:16:07 浏览: 140
您好,可以使用 Java 中的 Apache POI 库来读取和处理 Excel 表格数据。下面是一个简单的示例代码,可以读取两个 Excel 表格并将它们合并,以及对数据进行一些处理:
```java
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
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 {
// 读取第一个 Excel 表格
FileInputStream fis1 = new FileInputStream("excel1.xlsx");
Workbook workbook1 = WorkbookFactory.create(fis1);
Sheet sheet1 = workbook1.getSheetAt(0);
Iterator<Row> rowIterator1 = sheet1.iterator();
// 读取第二个 Excel 表格
FileInputStream fis2 = new FileInputStream("excel2.xlsx");
Workbook workbook2 = WorkbookFactory.create(fis2);
Sheet sheet2 = workbook2.getSheetAt(0);
Iterator<Row> rowIterator2 = sheet2.iterator();
List<String> mergedData = new ArrayList<>();
// 将两个表格数据合并
while (rowIterator1.hasNext()) {
Row row = rowIterator1.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
mergedData.add(cell.toString());
}
}
while (rowIterator2.hasNext()) {
Row row = rowIterator2.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
mergedData.add(cell.toString());
}
}
// 对数据进行处理
for (String data : mergedData) {
// TODO: 进行数据处理
}
// 关闭 Excel 文件
workbook1.close();
fis1.close();
workbook2.close();
fis2.close();
}
}
```
上述代码中,我们使用了 `FileInputStream` 类来读取 Excel 文件,然后使用 `WorkbookFactory.create()` 方法将文件流转换为 `Workbook` 对象,继而获取 `Sheet` 对象,最后使用 `iterator()` 方法获取行和单元格对象进行遍历。最后,我们将两个表格的数据合并到一个 `List` 中,然后对数据进行处理。处理完数据后,需要关闭 Excel 文件,以释放资源。
需要注意的是,这只是一个简单的示例代码,实际应用中需要根据具体需求进行进一步的开发和处理。
阅读全文