无法接受从方法返回的二维字符串数组

Unable to accept two dimensional String Array returned from a method

首先 :-) ,我不是那么精通 java。

所以在下面的代码中,我试图打印从方法返回的二维字符串。但是做不到。获取类型不匹配错误。谁能帮忙。

public class ExcelUtilAdvanced {

    public String[][] getDatafromExcel(){
        
        int rowCount = sheet.getPhysicalNumberOfRows();
        int colCount = sheet.getRow(0).getPhysicalNumberOfCells();
        String[][] data = new String[rowCount-1][colCount];
        Row row;
        Cell cell;
        for(int i=1;i<rowCount;i++) {
            row = sheet.getRow(i);
            for(int j=0;j<colCount;j++) {
                cell = row.getCell(j);
                data[i-1][j] = format.formatCellValue(cell);
            }
        }
        System.out.println(data);
    return data;
        
    }
    public static void main(String[] args) {
        
        int rowCount = 2;
        int colCount = 7;
        
        ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
        String[][] data = new String[rowCount][colCount];
        
        for(int i=1;i<rowCount;i++) {
            for(int j=0;j<colCount;j++) {
                data[i-1][j]= eua.getDatafromExcel(); //Type Type mismatch: cannot convert from String[][] to String
            }
            
        }
        
    }

您正在将 String[][] 对象传递给 String 变量。我认为您可以直接声明和初始化 String[][] 传递该方法返回的结果的对象。

public static void main(String[] args) {

    int rowCount = 2;
    int colCount = 7;

    ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
    String[][] data = eua.getDatafromExcel();
}

编辑:此外,您必须修改其余代码,以便能够处理 rowCountcolCount 变量(也许您可以将它们作为输入参数放在第一个方法中), 因为你没有在 String[][] 声明中使用它们。

喜欢:

String[][] data = eua.getDatafromExcel(rowCount, colCount);

并且你必须在每个循环的末尾放置 System.out.println,以便在你分配值时打印你的 String[][]。 您不能只打印 data 变量。

一般示例:

for(int i = 1; i < rowCount; i++) {
    for(int j = 0; j < colCount; j++) {
        System.out.print(data[i-1][j] + " ");
    }
    System.out.println();
}

您可以创建一个新的二维数组来复制 getDatafromExcel():

中的内容

像这样创建一个新的二维数组:

String[][] toFill =  new String[2][7];

或者如果你可以使用这个:

String[][] data = new String[rowCount][colCount];

在代码中,您的主要方法应如下所示:

public static void main(String[] args) {

int rowCount = 2;
int colCount = 7;

ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = new String[rowCount][colCount];
String[][] toFill =  new String[2][7];

for(int i=1;i<rowCount;i++) {
    for(int j=0;j<colCount;j++) {
        toFill= eua.getDatafromExcel(); 
    }

}

}

public static void main(String[] args) {

int rowCount = 2;
int colCount = 7;

ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = new String[rowCount][colCount];
data= eua.getDatafromExcel(); 

}