Workbook 转为list
时间: 2023-07-20 11:10:26 浏览: 119
将 Workbook 转为 list 的具体实现方式取决于你想要将工作簿中的哪些内容转换为列表。以下是一些示例代码,可以帮助你将工作簿中的不同类型的数据转换为列表。
1. 将 Excel 表格中的数据转换为列表
假设你有一个 Excel 表格,其中包含一些数据。以下示例代码将这些数据读取到一个列表中:
```java
import org.apache.poi.ss.usermodel.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ExcelToListConverter {
public static List<List<String>> workbookToList(Workbook workbook, int sheetIndex) {
List<List<String>> result = new ArrayList<>();
Sheet sheet = workbook.getSheetAt(sheetIndex);
Iterator<Row> rows = sheet.iterator();
while (rows.hasNext()) {
Row row = rows.next();
Iterator<Cell> cells = row.iterator();
List<String> rowData = new ArrayList<>();
while (cells.hasNext()) {
Cell cell = cells.next();
String value = "";
switch (cell.getCellType()) {
case STRING:
value = cell.getStringCellValue();
break;
case NUMERIC:
value = String.valueOf(cell.getNumericCellValue());
break;
case BOOLEAN:
value = String.valueOf(cell.getBooleanCellValue());
break;
case FORMULA:
value = cell.getCellFormula();
break;
default:
value = "";
}
rowData.add(value);
}
result.add(rowData);
}
return result;
}
}
```
在此示例代码中,我们使用 Apache POI 库中的 Sheet 和 Row 对象遍历 Excel 表格中的所有行和单元格。我们将每一行的数据存储在一个列表中,并将所有行的列表存储在另一个列表中。最后,我们返回这个包含所有行数据的列表。
请注意,这个示例代码仅仅是一个基础的实现,你需要根据实际情况对其进行修改和调整。
2. 将 Excel 表格中的特定列转换为列表
如果你只需要将 Excel 表格中的某些列数据转换为列表,你可以使用以下示例代码:
```java
import org.apache.poi.ss.usermodel.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ExcelToListConverter {
public static List<String> workbookToList(Workbook workbook, int sheetIndex, int columnIndex) {
List<String> result = new ArrayList<>();
Sheet sheet = workbook.getSheetAt(sheetIndex);
Iterator<Row> rows = sheet.iterator();
while (rows.hasNext()) {
Row row = rows.next();
Cell cell = row.getCell(columnIndex);
String value = "";
switch (cell.getCellType()) {
case STRING:
value = cell.getStringCellValue();
break;
case NUMERIC:
value = String.valueOf(cell.getNumericCellValue());
break;
case BOOLEAN:
value = String.valueOf(cell.getBooleanCellValue());
break;
case FORMULA:
value = cell.getCellFormula();
break;
default:
value = "";
}
result.add(value);
}
return result;
}
}
```
在此示例代码中,我们使用 Apache POI 库中的 Cell 对象遍历 Excel 表格中的所有列。我们将每个单元格的数据存储在一个列表中,并返回该列表。
请注意,在这个示例代码中,我们需要指定要转换的列的索引值。如果你需要转换多列数据,你可以使用一个循环来遍历所有需要的列。
阅读全文