java 提取excel中的数据并按标题进行输出
时间: 2024-12-24 08:40:46 浏览: 10
在Java中,我们可以使用Apache POI库来从Excel文件中提取数据并按照标题(列名)进行输出。以下是基本步骤:
1. **导入依赖**:
首先,需要添加Apache POI到你的项目中,如果你的Maven项目,可以在pom.xml里添加如下依赖:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>最新版本号</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>最新版本号</version>
</dependency>
```
2. **打开和读取工作簿**:
使用`XSSFWorkbook`打开Excel文件,并获取第一个工作表。
```java
Workbook workbook = new XSSFWorkbook(new FileInputStream("your_file.xlsx"));
Sheet sheet = workbook.getSheetAt(0);
```
3. **查找标题行**:
循环检查第一行(假设为标题行),查找列名。
```java
Row headerRow = sheet.getRow(0);
Cell[] cells = headerRow.getCells();
Map<String, Integer> columnMap = new HashMap<>();
for (Cell cell : cells) {
if (cell.getCellType() == CellType.STRING) {
columnMap.put(cell.getStringCellValue(), cell.getColumnIndex());
}
}
```
4. **遍历数据行并按标题输出**:
从第二行开始遍历数据,通过标题行创建的映射找到对应列的索引,然后输出。
```java
for (int rowNum = 1; rowNum < sheet.getLastRowNum(); rowNum++) {
Row dataRow = sheet.getRow(rowNum);
Cell[] rowDataCells = dataRow.getCells();
for (Cell cell : rowDataCells) {
String columnName = columnMap.get(cell.getStringCellValue());
System.out.print(String.format("%s:", columnName));
System.out.print(cell.getStringCellValue() + "\t"); // 输出值,这里用制表符分隔
}
System.out.println(); // 每一行结束后换行
}
```
5. **关闭资源**:
最后别忘了关闭`Workbook`和`FileInputStream`。
阅读全文