Junit 如何将xls转换为集合<;字符串[]>;用ApachePOI?

Junit 如何将xls转换为集合<;字符串[]>;用ApachePOI?,junit,apache-poi,data-driven-tests,Junit,Apache Poi,Data Driven Tests,我想使用@RunWith(Parameterized.class)和 @Parameterized.Parameters 公共静态集合testdata(){ 返回Arrays.asList(新字符串[][]{ {“inParam1”、“inPAram2”、“expectedOut1”、“expectedOut2”} }); } 实际测试数据应由业务人员通过Excel创建 有没有一种简单/通用的方法可以将Apache POI设置为指定的字符串数组 如果是:有人能提供一个例子吗 我发现了这个问题:

我想使用@RunWith(Parameterized.class)和

@Parameterized.Parameters
公共静态集合testdata(){
返回Arrays.asList(新字符串[][]{
{“inParam1”、“inPAram2”、“expectedOut1”、“expectedOut2”}
});
}
实际测试数据应由业务人员通过Excel创建

有没有一种简单/通用的方法可以将Apache POI设置为指定的字符串数组

如果是:有人能提供一个例子吗


我发现了这个问题:---但我希望有一种三行;-)

这不是一个3行程序,但假设我正确理解了您的需求,您可以执行以下操作:

 Sheet sheet = workbook.getSheetAt(0);
 DataFormatter fmt = new DataFormatter();
 List<List<String>> cellData = new ArrayList<List<String>>();
 for (Row r : sheet) {
    List<String> rd = new ArrayList<String>();
    for (Cell c : r) {
       rd.add(fmt.formatCellValue(c));
    }
    cellData.add(rd);
 }
Sheet Sheet=workbook.getSheetAt(0);
DataFormatter fmt=新的DataFormatter();
List cellData=newarraylist();
用于(第r行:页){
列表rd=新的ArrayList();
用于(单元c:r){
rd.add(fmt.formatCellValue(c));
}
cellData.add(rd);
}
这将在任何时候为所有定义的行和单元格生成一个字符串列表,每行一个列表,该列表中每个单元格一个字符串。您可以相当轻松地从列表切换到数组

如果需要更多控制哪些单元格/行包括/不包括,包括空单元格/行,请参阅

 Sheet sheet = workbook.getSheetAt(0);
 DataFormatter fmt = new DataFormatter();
 List<List<String>> cellData = new ArrayList<List<String>>();
 for (Row r : sheet) {
    List<String> rd = new ArrayList<String>();
    for (Cell c : r) {
       rd.add(fmt.formatCellValue(c));
    }
    cellData.add(rd);
 }