Я пытаюсь получить доступ к файлу Excel в hashmap, но при i = 5 colNum получается значение 8, поэтому вывод не получается ожидаемым.Ниже приведен код Чтение этого файла Excel с помощью hashmap, после того, как вопрос типа соответствует, я хочу сохранить только соответствующую метку и значение, а затем передать соответствующему классу
![enter image description here](https://i.stack.imgur.com/mUT74.png)
public class HashMapObjectTest {
static HSSFSheet sheet;
static HSSFRow row;
private static MissingCellPolicy xRow;
static DataFormatter df = new DataFormatter();
@Test
public void getMapData() throws Exception
{
File src=new File("D:\\Projects\\TestData_peerTest.xls");
FileInputStream fis=new FileInputStream(src);
HSSFWorkbook wb=new HSSFWorkbook(fis);
sheet = wb.getSheetAt(0);
DataFormatter df = new DataFormatter();
Row row;
//String value1 = null;
String value = null;
String keyQuestion;
String label = null;
Map<String,Map<String,String>> superMap = new HashMap <String,Map<String,String>> ();
Map<String,String> childMap=new HashMap<String,String>();
ArrayList <String >data=new ArrayList<String>();
for(int i=1; i<sheet.getLastRowNum();i++ )
{
row=sheet.getRow(i);
int column=0;
int colNum=row.getLastCellNum();
Cell c=row.getCell(column, MissingCellPolicy.RETURN_BLANK_AS_NULL);
//String label=df.formatCellValue(sheet.getRow(i).getCell(1));
if(c==null)
{
//label=df.formatCellValue(sheet.getRow(i).getCell(i+1));
label=df.formatCellValue(sheet.getRow(i).getCell(1));
value=df.formatCellValue(sheet.getRow(i).getCell(2));
data.add(value);
continue;
}
else {
keyQuestion= df.formatCellValue(sheet.getRow(i).getCell(0));
for (int j=1;j<colNum-1;j++)
{
label=df.formatCellValue(sheet.getRow(i).getCell(1));
value=df.formatCellValue(sheet.getRow(i).getCell(j+1));
childMap.put(label, value);
}
superMap.put(keyQuestion, childMap);
}
}
System.out.println(superMap);
/*List keys = new ArrayList(superMap.keySet());
for (int i = 0; i < keys.size(); i++) {
Object obj = keys.get(i);
// do stuff here
}
for (Entry<String, Map<String, String>> entry : superMap.entrySet()) {
String key = entry.getKey();
System.out.println(key);
Map<String, String> childkey = entry.getKey();
System.out.println(value);
//TODO: other cool stuff
}
Также я хочу проверить элемент hashmap (superMap), чтобы проверить questionType, для этого, пожалуйста, предложите возможный подход.