请问multivaluemap如何与java poi读取的多行多列的数据进行对应,请写一段代码
时间: 2024-02-24 19:59:40 浏览: 173
java的poi技术读取和导入Excel实例
当使用Java POI读取多行多列的Excel数据时,可以使用MultiValueMap来存储读取的数据,并将其与Excel中的行和列对应起来。下面是一段示例代码:
```java
import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.io.IOException;
public class ExcelReader {
public static void main(String[] args) {
Workbook workbook = null;
try {
workbook = WorkbookFactory.create(new File("data.xlsx"));
} catch (IOException e) {
e.printStackTrace();
}
Sheet sheet = workbook.getSheetAt(0);
MultiValuedMap<Integer, String> dataMap = new ArrayListValuedHashMap<>();
for (Row row : sheet) {
for (Cell cell : row) {
int rowIndex = cell.getRowIndex();
int columnIndex = cell.getColumnIndex();
String cellValue = getCellValue(cell);
dataMap.put(rowIndex, cellValue);
}
}
System.out.println(dataMap);
}
private static String getCellValue(Cell cell) {
String cellValue = "";
switch (cell.getCellType()) {
case STRING:
cellValue = cell.getStringCellValue();
break;
case NUMERIC:
cellValue = String.valueOf(cell.getNumericCellValue());
break;
case BOOLEAN:
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
default:
break;
}
return cellValue;
}
}
```
在这个示例代码中,我们首先使用WorkbookFactory.create方法读取Excel文件,然后获取第一个Sheet对象。接下来,我们遍历Sheet中的每一行和每一列,并使用MultiValuedMap将单元格的值与行和列对应起来。最后,我们将MultiValuedMap打印出来以确认数据是否正确存储。
阅读全文