我有一个包含5个字段的屏幕。我创建了一个包含5列和10行的excel文件。我想在hashmap中存储excel的值,并使用字段中的每个行值来执行保存操作。我需要使用Framework下的Excel类来读取条目。工作代码:
hmCreateAdvBank=Excel.getXlsRowDataAsMap(TestFile, TestSheet, "1");
Page.Field1.setText(hmCreateAdvBank.get("Key Value"));
Save();
TestFile& TestSheet是带有Excel文件名和工作表名称值的变量。
当我使用for循环并用定义的变量替换整数值时,它会给出一个错误,如:
Stack Trace: null
java.lang.NullPointerException
at core.libs.Excel.getXlsRowDataAsMap(Excel.java:786)
我是这个世界的新手,所以刷新了stackoverflow和你的帮助。
答案 0 :(得分:1)
您似乎需要遍历Map。最有效的迭代方法如下所示:
Map<String,String> theMap = new HashMap<String,String>();
for(Entry<String,String> entry : theMap.entrySet()){
String key = entry.getKey();
String value = entry.getValue();
}
答案 1 :(得分:0)
// iterate over all rows
for(int row = 1; row <= 10; row++) {
// convert the row number to a String
String rowStr = String.valueOf(row);
// get the row data
Map<String, String> rowData = Excel.getXlsRowDataAsMap(TestFile, TestSheet, rowStr);
Page.Field1.setText(rowData.get("Column1"));
Page.Field2.setText(rowData.get("Column2"));
Page.Field3.setText(rowData.get("Column3"));
Page.Field4.setText(rowData.get("Column4"));
Page.Field5.setText(rowData.get("Column5"));
Save();
}
答案 2 :(得分:-2)
您可以使用foreach循环遍历hashmap的值
package hashmap;
import java.util.HashMap;
import java.util.Map;
public class HashmapLoop {
public static void main(String[] args) {
Map<String, String> myMap = new HashMap<String, String>();
myMap.put("someKey", "someValue");
myMap.put("otherKey", "otherValue");
for(String s : myMap.values()) {
System.out.println(s);
}
}
}