gpt4 book ai didi

java - 使用apache poi在java中的二维数组的第二个值中获取null

转载 作者:行者123 更新时间:2023-12-01 21:36:19 25 4
gpt4 key购买 nike

我在二维数组中得到空值。当我在调用方法(hello)中打印出数组的值时,我得到了正确的值,但在被调用者(主方法)中,打印时我得到了第二个值 null

以下是程序

package TestngPackage;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class MyReadExcel {

public static XSSFWorkbook workbook;

public static String[][] hello() throws IOException{

FileInputStream fis = new FileInputStream(new File("F:\\TestExcel\\Test.xlsx"));
workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
String s[][] = new String[2][2];

for (int x = 0; x < sheet.getLastRowNum() + 1; x++){
Row row=sheet.getRow(x);

for (Cell c : row){
int y = 0;
s[x][y] = c.getStringCellValue();
//System.out.println(s[x][y]);
y++;
}

}

workbook.close();
fis.close();
return s;
}

public static void main(String[] args) throws InvalidFormatException, IOException {

String str[][];
str = hello();

for (int x = 0; x < str.length; x++){

for (int y = 0; y < str[x].length; y++){
System.out.println(str[x][y]);
}

System.out.println();
}

}

}

最佳答案

我认为你错误地输入了 int y=0;在循环内部,因此每次 y 变量初始化时都使用 0 值,这就是为什么值会被 0 元素覆盖。这就是为什么您可以在循环中找到第二个元素为 null 的原因。

so you need to put int y=0; outside of for (Cell c : row) for loop as per my following example.

for (int x=0; x<sheet.getLastRowNum()+1; x++){
Row row=sheet.getRow(x);
int y=0;
for (Cell c : row){
// int y=0; every time its init with 0 so value would be override on every time
s[x][y]=c.getStringCellValue();
// System.out.println(s[x][y]);
y++;
}
}

关于java - 使用apache poi在java中的二维数组的第二个值中获取null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com