我创建了一个下面的代码,它将读取excel表并将数据存储到hashmap中。
public static void getValue()
{
Map<Integer, List<String>> getValues= new HashMap<Integer,List<String>>();
String fileLocation = ".//clone1//Sample.xls";
File f = new File(fileLocation);
FileInputStream fis = new FileInputStream(f);
Workbook book = new XSSFWorkbook(fis);
Sheet sheet = book.getSheetAt(0);
for (int i = 1; i <= sheet.getLastRowNum(); i++)
{
Row row = sheet.getRow(i);
List<String> datai = new ArrayList<String>();
for (int j = 0; j < row.getLastCellNum(); j++)
{
row.getCell(j, Row.CREATE_NULL_AS_BLANK);
datai.add(row.getCell(j).getStringCellValue());
}
getValues.put(i,datai);
}
}
HashMap的OUTPUT有些想法如下:
键:0 值:[&#34;汞&#34;&#34;汞&#34;]
键:1 值:[&#34;亚马逊&#34;&#34;点燃&#34;]
&#34; key&#34;表示excel表中的行数和&#34;值&#34;表示用户名和密码列,它们存储在Map中的List中。
根据输出,excel表有两个活动行和4个活动单元格值。
+示例POJO Class +
public class DataSet
{
private username;
private password;
//getter and setters methods for username, and password
}
我想将值应用于pojo类。哪个是从Map中实现设置pojo对象值的有效方法。
答案 0 :(得分:0)
您可以使用一种流转换它:
List<DataSet> data = getValues.values().stream()
.filter(l -> l.getSize() >= 2)
.map(l -> new DataSet(l.get(0), l.get(1)))
.collect(Collectors.toList());